新手练习-完整的投票项目

第一部分:创建项目和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。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值