.. include:: ../LINKS.rst
人性化
============================
“添加后连个自动转向都没有!什么破东西!”
模板系统
-----------------------------
在bottle自带的模板中,小白尝试了一下传进去一个
换行符等HTML标签
结果都变成纯文本传出来了……没有得到换行符的结果。怎么能够让模板传入HTML代码,使模板功能更将大呢?
小白在网上搜索了一下“python 模板”,搜出一大堆结果。小白发现Python有以下许多模板:
- `Mako`_
- `Jinja2`_
- `Cheetah`_
- 等等....
小白继续看,发现小而强大的模板系统就是—— `Mako`_ 。“嗯!试试mako吧。先下把mako安装了再说。”
安装::
sudo easy_install mako
改进模板
-------------------------------
白板型的模板连小白自己都看不下去了,用CSS!
Leo
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
::
夫 `Leo`_ 者,文学编程 之环境也!
在工具篇里有具体介绍, 也是听从 `行者`_ 建议,上了瘾的奇妙工具...
用clone节点来记录css,方便了许多,减少重复。
.. image:: ../_static/snap/malaweb_leo.png
.. seealso:: (^.^)
- 但是,这里,小白是什么动机开始使用 Leo 了呢,又怎么学会的呢?
- 和其它编辑环境相比有什么好处和不足? 在 M$ 环境中有什么问题?
CSS
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
夫CSS者,样式表也!
有兴趣的小白可以到网上搜搜,可以搜出一大堆教程
::
再连同title等标签和导航栏写成一个head节点,clone到每一个页面::
# -*- coding: utf-8 -*-
mala通讯录
通讯录程序
添加 | 搜索
然后一个个写页面
`add.tpl` 添加页面模板
.. literalinclude:: ../../src/5_webmala/web3/views/add.tpl
`view.tpl` 搜索页面模板
.. literalinclude:: ../../src/5_webmala/web3/views/view.tpl
Done!
.. image:: ../_static/snap/newadd.png
view页面
.. image:: ../_static/snap/newview.png
自动跳转
--------------------------------
bottle框架中的自动定向跳转语句::
bottle.redirect('/view')
添加到POST的add函数中
搜索
-----------------------------------
but,搜索功能还没有完成呢,不过,这对小白来说也不是什么难事,修改view函数::
@bottle.route('/view')
def view():
printlist=['firstname',
'lastname',
'phone',
'email',
'address']
has_keywd='keytext' in bottle.request.GET
if has_keywd:
keywd=bottle.request.GET['keytext']
else:
keywd=""
string=""
if not has_keywd:
for i in db.keys():
for j in printlist:
string+=j+": "+db[i][j]+r'
'
string+=r"
"
else:
list_=[]
for i in db.keys():
for j in printlist:
if keywd in db[i][j]:
print keywd
list_.append(i)
for i in list_:
for j in printlist:
string+=j+": "+db[i][j]+r'
'
tmpl = Template(filename='./views/view.tpl', output_encoding='utf-8')
return tmpl.render(html=string)
只是单纯的用字典的操作方法来操作而已……虽然代码长了一些,但是也能用了!
结局
----------------------------------
嗯嗯嗯,不错不错,终于能够使用了……