建立模型
我们在models下及那里polls.py
文件内容如下
# -*- coding: utf-8 -*-
pollsdb=DAL(uri='sqlite://polls.db') pollsdb.define_table('Question',
Field('question_text','string',length=200),
Field('pub_date','datetime'),
format='%(question_text)s') pollsdb.define_table('Choice',
Field('question','reference Question',requires=IS_IN_DB(pollsdb,'Question.id',pollsdb.Question._format)),
Field('choice_text','string',length=200),
Field('votes','integer',default=0),
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