web2py--------------用web2py写 django的例子 --------建立一个投票应用(2)

建立模型

我们在models下及那里polls.py

文件内容如下

 1 # -*- coding: utf-8 -*-
 2 pollsdb=DAL(uri='sqlite://polls.db')
 3 
 4 pollsdb.define_table('Question',
 5                      Field('question_text','string',length=200),
 6                      Field('pub_date','datetime'),
 7                      format='%(question_text)s')
 8 
 9 pollsdb.define_table('Choice',
10                      Field('question','reference Question',requires=IS_IN_DB(pollsdb,'Question.id',pollsdb.Question._format)),
11                      Field('choice_text','string',length=200),
12                      Field('votes','integer',default=0),
13                      format='%(choice_text)s')
polls.py

详细大卖我写到 上边方便粘贴

解释一下,pollsdb 是数据库文件,使用官方的 DAL 这是一个独立插件,支持数据库很多,这里使用sqlite

建立两个数据表,Question 和 Choice 两个表

其中 Choice 的表有question 字段 是外键

我们可以登录 后台管理 看到

输入 http://127.0.0.1/polls/appadmin/

输入管理密码

可以看到 我们建立的两个表,还有系统权限表,不过对这个应用目前没有关系

我们 可以为 Question 表添加新纪录

点击后边的 新纪录  按钮

可以看到 在 datetime 数据是 web2py 为我们提供了 一个插件以供选择时间。

输入之后点击 提交

在 管理界面 点击 表名 就可以看到list了。

确实是简陋的管理界面,不过开发人员不要在意这些细节

我们 同样的方法看一下  Choice 的添加页面

应该算是比较完美的呈现吧,系统为了做了 外键关联。

我们这里的建立模型就结束了

课后练习

尝试使用不同的数据库

系统为我们提供了 很多种 验证工具,可以尝试一下,这里只是用了  IS_IN_DB

原文地址:https://www.cnblogs.com/bufubaoni/p/5831009.html