建立模型
我们在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')
详细大卖我写到 上边方便粘贴
解释一下,pollsdb 是数据库文件,使用官方的 DAL 这是一个独立插件,支持数据库很多,这里使用sqlite
建立两个数据表,Question 和 Choice 两个表
其中 Choice 的表有question 字段 是外键
我们可以登录 后台管理 看到
输入 http://127.0.0.1/polls/appadmin/
输入管理密码
可以看到 我们建立的两个表,还有系统权限表,不过对这个应用目前没有关系
我们 可以为 Question 表添加新纪录
点击后边的 新纪录 按钮
可以看到 在 datetime 数据是 web2py 为我们提供了 一个插件以供选择时间。
输入之后点击 提交
在 管理界面 点击 表名 就可以看到list了。
确实是简陋的管理界面,不过开发人员不要在意这些细节
我们 同样的方法看一下 Choice 的添加页面
应该算是比较完美的呈现吧,系统为了做了 外键关联。
我们这里的建立模型就结束了
课后练习
尝试使用不同的数据库
系统为我们提供了 很多种 验证工具,可以尝试一下,这里只是用了 IS_IN_DB