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,在文本框中输入信息,提交,显示信息如下:

数据库中信息如下:

 

posted @ 2013-07-21 00:09  bamb00  阅读(580)  评论(0编辑  收藏  举报