uliweb框架数据库操作
先安装数据库和相关的库文件
1 sudo aptitude install python-setuptools 2 sudo easy_install SQLAlchemy 3 sudo easy_install uliweb 4 sudo easy_install plugs 5 sudo aptitude install mysql-client -y 6 sudo aptitude install mysql-server -y 7 sudo aptitude install python-mysqldb -y
在app/settings.ini中配置mysql数据库,增加orm应用:
1 [GLOBAL] 2 DEBUG = False 3 DEBUG_CONSOLE = False 4 5 INSTALLED_APPS = [ 6 #添加orm应用配置 7 'uliweb.contrib.orm', 8 'uliweb.contrib.staticfiles', 9 'blog', 10 ] 11 #添加mysql数据库配置,其中root为mysql用户名,mysql为mysql数据库密码,blog为创建的数据库名称 12 [ORM] 13 CONNECTION='mysql://root:mysql@localhost/blog?charset=utf8'
需要用mysql命令手动创建数据库blog:
mysql> create database blog;
在apps/blog/目录创建models.py文件,用于建立表及字段:
1 #coding:utf-8 2 3 from uliweb.orm import * 4 import datetime 5 6 class blog_table(Model): 7 user = Field(CHAR) 8 content = Field(TEXT) 9 datetime = Field(datetime.datetime, auto_now_add = True)
在 views.py中添加以下语句:
from blog.models import blog_table
然后使用以下命令在blog数据库中建立上面的表和字段(必须先执行上面几步):
uliweb -v syncdb
得到以下信息表示创建成功:
***@Android:~/myblog# uliweb syncdb [default] Creating blog_table...CREATED
在views.py中操作数据库
1 #coding=utf-8 2 from uliweb import expose, functions 3 from blog.models import blog_table 4 5 @expose('/boge') 6 def boge(): 7 all = blog_table.all() 8 return {'a':all} 9 10 @expose('/dest') 11 def dest(): 12 for i in request.params.keys(): 13 print i, request.params[i] 14 # return redirect('/') 15 if request.method == 'POST': 16 tab = blog_table() 17 tab.user = request.params['user'] 18 tab.content = request.params['content'] 19 tab.save() 20 return redirect('/boge')
在boge.html模板中显示:
1 <html> 2 <meta http-equiv="Content-Type" content = "text/html; charset = UTF-8"> 3 <hr> 4 <form name = "input" action = "/dest" method = "post"> 5 用户名:<input type = "text" name = "user"> 6 内容:<textarea type = "text" name = "content"></textarea> 7 <input type = "submit" value = "Submit"> 8 <hr> 9 {{for i in a:}} 10 {{=i.user}} 11 {{=i.content}} 12 </form> 13 </html>
在浏览器中打开http://127.0.0.1:8000/boge,在文本框中输入信息,提交,显示信息如下:
数据库中信息如下: