第一部分:创建项目和app
创建新项目
打开pycharm专业版,新建一个Django项目,取名为MySite,其余保持默认配置即可。
创建投票app
输入命令:startapp polls,并执行。
此时app创建成功!
创建第一个视图view
配置路由URLconf
配置polls的路由
配置根路由
启动服务器,查看效果
第二部分:数据库 & DjangoAdmin
配置MySQL
在MySQL中创建一个新的数据库:polls
在数据库中生成对应的表
执行“migrate”,此时会根据settings.py中的INSTALLED_APPS自动建表。
创建模型Model
注册app
生成migration
查看migration对应的SQL语句
将migration同步到数据库中
去数据库中查看新生成的表:
database API
增加记录
打开Python Console,依次执行:
查看表polls_question,发现增加了一条记录:
时间显示的不对,应该是时区的问题。
简单的查询
重写__str__()方法
增加Choice并查看
Django Admin
创建超级管理员
将Model添加到管理员页面
查看管理员页面
解决时间显示错乱的方法——修改时区
第三部分:增加更多的视图views
创建templates文件夹
创建templates文件夹,用来存放模板:
(注意文件夹的结构一定要如下图所示,这样符合Django的Namespace规则)
创建index视图
查询数据库 & 抛出404错误
在浏览器中查看:
在模板中访问对象的属性
通过点语法来访问对象的属性,访问的次序为:字典查询、属性查询、下标查询。
去除URL硬编码
路由定义如下:
URL命名空间
见上文中的app_name = xxx
第四部分:表单
创建一个简易表单
RadioButton的基本语法说明:
每一个RadioButton的name为choice,value为对应choice的id,因此,当提交POST请求时,会发送给服务器choice=#的数据,#就是value对应的值。
forloop.counter:
for循环执行的次数,从1开始。
csrf_token:
防止跨站请求伪造。
创建vote和results视图
第五部分:测试
略。
第六部分:静态文件
创建static文件夹
创建static文件夹,然后创建style.css:
修改模板页面
启动服务器,查看效果
增加背景图片
将背景图片添加到该目录下:
修改CSS样式表文件:
此时,项目主页便显示出了该背景图。
Tips:显然{% static %}不能使用在静态文件中,因此在静态文件中应该使用相对路径。
第七部分:自定义管理员界面
改变字段次序
修改admin.py:
增加关联的对象
现在我们有了Question的管理员页面,但是我们缺少Choice的显示。
第一种方法
在admin.py中注册Choice:
效果如下:
在这个表格中,Question域是一个下拉框,包含了数据库中的每个question。Django把ForeignKey表示为下拉框的形式。
第二种方法
修改admin.py:
这表示Choice对象在Question的页面中被编辑。效果如下:
(其余更细节的定制省略,详情可以查阅官方文档)
Over。