Django例程:建立一个投票应用

编写一个Django应用

  • cd到指定文件夹,创建项目,生成mysite目录(整个项目的容器)(mysite可以换名字)

    • manage.py:管理项目的命令行工具

    • mysite/目录:一个python包,用mysite.url的形式调库

      • __init__:包的标识

      • settings.py:配置文件,用于项目的默认设置,添加应用时需在此注册

      • urls.py:url声明,注册各应用的url

      • asgi.py:运行在 ASGI 兼容的 Web 服务器上的入口

      • wsgi.py:运行在 WSGI 兼容的Web服务器上的入口

  • 用于测试开发的本地服务器:...\> py manage.py runserver

  • 创建应用:...\> py manage.py startapp polls

    • __init__:包的标识是

    • admin.py:生成网站后台

    • apps.py:?

    • migrations/:存数据库结构,自动生成

    • models.py:定义关系及其属性和方法,用于生成数据库

    • tests.py:用于测试代码

    • views.py:每def一个view是一个网页

    • -----------------------------以下为手动建立----------------------------------------------

    • templates/:存放html模板

    • statics/:存放css样式文件和图片等静态资源

    • urls.py:存放url patterns,确定各种url会到哪个view

      • path函数:route匹配url,view确定对应调用的视图函数并传入HttpRequest,name标识url

  • 配置数据库

    • 在settings.py中设置当前时区

    • 使用...\> py manage.py migrate来创建/生成数据表

    • 在models.py中新建class,每个class是一个关系表

  • 在settings.py中注册应用(INSTALLED_APPS)

    • 接着...\> py manage.py makemigrations polls重新检测模型文件,生成迁移后的数据库结构

    • ...\> py manage.py migrate来应用本次迁移

  • 使用数据库API

    • import对应model

    • .objects.all()方法可以查询全体

    • .运算来查询已知元组的属性

    • 用类的构造函数和.save()方法来增加元组

    • __str__方法可以显示对象内容

    • .objects.fliter()方法可以进行条件查询

    • .object.get()方法可以给变量赋值为该关系中的某一元组

  • 创建管理员账号

  • 向管理页面中加入应用:admin.site.register(关系名),注册类的所有对象会被显示,并可以被编辑

  • 建立视图

    • 基本要求:返回一个HttpResponse或者抛出一个异常

    • 从models中的类的实例里得到数据,用render来导入模板

      • 模板中的url可以不用硬编码

      • 需要为urls添加命名空间

    • 用合适的try-except-raise来实现业务逻辑,抛出异常等

      • 注意快捷函数

    • request.POST()获得数据,这是一个类字典对象,可以获取提交的数据

    • 返回一个HttpResponseRedirect,重定向至新的url

    • 通用视图:

      • 具有特定模式的页面,抽象成一个class,继承于特定模式的通用视图

      • detailView期望从url中捕获主键值

  • 写测试

    • 对每个模型或视图建立一个测试类

    • 模型要测试所有的方法

    • 视图要用client模拟用户行为

  • 使用静态文件

    • 建立目录:应用/static/应用/

    • 使用样式,图片和视频

  • 后台开发

    • 注册模型使之被显示

    • 更改在列表中显示属性:list_display

      • 使用display()

    • 建立专门的class来设置显示内容

    • 自定义后台外观:工程模板

posted @   Phile-matology  阅读(71)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示