先安装数据库和相关的库文件

     sudo aptitude install python-setuptools
sudo easy_install SQLAlchemy
sudo easy_install uliweb
sudo easy_install plugs
sudo aptitude install mysql-client -y
sudo aptitude install mysql-server -y
sudo aptitude install python-mysqldb -y

在app/settings.ini中配置mysql数据库,增加orm应用:

 [GLOBAL]
DEBUG = False
DEBUG_CONSOLE = False INSTALLED_APPS = [
#添加orm应用配置
'uliweb.contrib.orm',
'uliweb.contrib.staticfiles',
'blog',
]
#添加mysql数据库配置,其中root为mysql用户名,mysql为mysql数据库密码,blog为创建的数据库名称
[ORM]
CONNECTION='mysql://root:mysql@localhost/blog?charset=utf8'

需要用mysql命令手动创建数据库blog:

mysql> create database blog;

在apps/blog/目录创建models.py文件,用于建立表及字段:

 #coding:utf-8

 from uliweb.orm import *
import datetime class blog_table(Model):
user = Field(CHAR)
content = Field(TEXT)
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中操作数据库

 #coding=utf-8
from uliweb import expose, functions
from blog.models import blog_table @expose('/boge')
def boge():
all = blog_table.all()
return {'a':all} @expose('/dest')
def dest():
for i in request.params.keys():
print i, request.params[i]
# return redirect('/')
if request.method == 'POST':
tab = blog_table()
tab.user = request.params['user']
tab.content = request.params['content']
tab.save()
return redirect('/boge')

在boge.html模板中显示:

 <html>
<meta http-equiv="Content-Type" content = "text/html; charset = UTF-8">
<hr>
<form name = "input" action = "/dest" method = "post">
用户名:<input type = "text" name = "user">
内容:<textarea type = "text" name = "content"></textarea>
<input type = "submit" value = "Submit">
<hr>
{{for i in a:}}
{{=i.user}}
{{=i.content}}
</form>
</html>

在浏览器中打开http://127.0.0.1:8000/boge,在文本框中输入信息,提交,显示信息如下:

数据库中信息如下:

uliweb框架数据库操作的更多相关文章

  1. TP框架数据库操作(增删改)

    首先选择一张表,对其进行操作: 对数据库操作之前首先要创建模型: $n = M("account"); 数据库添加数据: 1.使用数组: 1.使用数组 $arr = array(& ...

  2. Django 框架 数据库操作2

    一.ORM的操作方法总结 get(self, *args, **kwargs): # 获取单个对象 def one_get(request): #直接得到一个表对象,也就是表记录 如果得到多个会报错 ...

  3. Django 框架 数据库操作

    数据库与ORM 1    django默认支持sqlite,mysql, oracle,postgresql数据库.  <1> sqlite django默认使用sqlite的数据库,默认 ...

  4. codeiginter框架数据库操作

       /**      *  //查询表内的数据      *  $res = $this->db->get('表名');      *  $res->result();       ...

  5. 二十、CI框架数据库操作之查看生产的sql语句

    一.代码如下: 二.我们访问一下: 三.我们对比一下数据库内容 不忘初心,如果您认为这篇文章有价值,认同作者的付出,可以微信二维码打赏任意金额给作者(微信号:382477247)哦,谢谢.

  6. 1-1hibernate数据库操作基础

    一.纯原始数据库连接详见http://www.cnblogs.com/lukelook/p/7845757.html 1.Class.forName("oracle.jdbc.driver. ...

  7. Laravel框架数据库CURD操作、连贯操作使用方法

    Laravel框架数据库CURD操作.连贯如何来操作了这个操作性是非常的方便简单了我们在这里来为各位介绍一篇相关的教程,具体的细节步骤如下文介绍.   Laravel是一套简洁.优雅的PHP Web开 ...

  8. Entity Framework 实体框架的形成之旅--几种数据库操作的代码介绍(9)

    本篇主要对常规数据操作的处理和实体框架的处理代码进行对比,以便更容易学习理解实体框架里面,对各种数据库处理技巧,本篇介绍几种数据库操作的代码,包括写入中间表操作.联合中间表获取对象集合.递归操作.设置 ...

  9. Yii2.0高级框架数据库增删改查的一些操作(转)

    yii2.0框架是PHP开发的一个比较高效率的框架,集合了作者的大量心血,下面通过用户为例给大家详解yii2.0高级框架数据库增删改查的一些操作 --------------------------- ...

随机推荐

  1. CSS深入理解之float(HTML/CSS)

    float的设计初衷仅仅是:为了文字环绕效果 float的包裹与破坏 包裹:收缩.坚挺.隔绝(BFC) 破坏:父元素高度塌陷 <!DOCTYPE html> <html> &l ...

  2. javascript promise编程

    在loop中使用promise: https://stackoverflow.com/questions/17217736/while-loop-with-promises

  3. 简易使用UILabel的富文本

    简易使用UILabel的富文本 使用效果: 源码: NSString+YX.h    NSString+YX.m // // NSString+YX.h // YXKit // // Copyrigh ...

  4. 详细讲解WaterRefreshLoadMoreView的使用

    详细讲解WaterRefreshLoadMoreView的使用 效果图: 加载控件的源码在如下网址中:上拉加载下拉刷新控件WaterRefreshLoadMoreView 使用的源码: // // V ...

  5. Python学习---IO的异步[asyncio模块(no-http)]

    Asyncio进行异步IO请求操作: 1. @asyncio.coroutine  装饰任务函数 2. 函数内配合yield from 和装饰器@asyncio.coroutine 配合使用[固定格式 ...

  6. September 11th 2017 Week 37th Monday

    I believe there is a hero in all of us. 我相信每个人心中都住着一个英雄. For every of us, there are two version with ...

  7. 'Table is Marked as crashed and should be repaired Error'.Mysql表损坏解决方案

    问题表现:由于服务器崩溃导致表损坏无法打开或者能打开但是无法写入数据(提示主键重复但实际没有该主键且该主键值在最大值范围内). 本文提供两种检查修复方式:mysqlcheck 和 myisamchk ...

  8. 终于明白为什么要赋值给ret ,

    def my_max(a,b): if a > b: return a else: return b my_max(10,45)# 如果只是这样,那么只是运行了并产生返回值,但没有打印返回值t ...

  9. 理解活在Iphone中的那些App (二)

    app是什么,为什么而存在 存在即合理的说法,已经被批臭批烂了.所以,作为一个程序员不能简简单单的因为上面来了一个需求,就完成一个需求.让做一个app就做一个app,只是简单的认为存在即合理,头让写就 ...

  10. Django之Model (ORM)

    传统操作数据库 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: 创建数据库,设计表结构和字段 使用 MySQLdb 来连接数据库,并编写数据访问层代码 业务逻辑层去调用数据访问层 ...