Django期末重点

思维导图

一、Djanog框架基础

MVT设计模式(model模型【操作数据库】、template模板【页面展示】、view视图【处理请求和调用模型模板】)

二、Django项目框架搭建

  1. 创建项目骨架 django-admin startproject 项目名
  2. 启动服务
    (1)python manage.py runserver
    (2)默认8080端口
  3. 配置setting.py文件
    (1)INSTALLED_APP(当前项目需要加载的app路径包括列表)
    (2)TEMPLATES(项目的模板配置)
    (3)DATABASES(标识项目的数据库配置)
  4. 管理后台与超级用户
    (1)创建超级用户 python manage.py createsuperuser
    (2)默认路径 http://127.0.0.1:8000/admin/
  5. 创建应用
    python manage.py startapp 应用名

三、 模型

  1. ORM基本概念
    (1)ORM把数据表与python类对应,表字段与属性对应、类实例与数据记录对应,并将对类实例的操作映射到数据库中。
    (2)开发者不再需要写SQL代码,可以更加专注的完成业逻辑。
  2. Models定义
    (1)直接继承或者间接继承models.Model类
    (2)Model中定义字段(models.Filed的子类)
    (3)时间类型字段中,Field参数 auto_now_add用于将首次创建的对象时间设置为当前时间 auto_now 用于首次保存对象时间设置为当前时间
    (4)_ _str _ _方法用于将函数的返回值作为对象的显示值
  3. 应用完成数据库迁移
    (1)生成迁移文件python manage.py makemigrations
    (2) 执行迁移命令 python manage.py migrate
  4. 模型字段类型
    (1)常见字段类型 CharFiled(字符串) IntegerFiled(整数) BooleanFiled(布尔) TextFiled(长文本)DatatimeFlie(日期)
    (2)自定义字段类型
  5. 三种关系字段类型
    (1)多对一ForeignKey
    (2)多对多(ManyToMany)
    (3)一对一(OneToOneField)
  6. 创建model实例对象的方法
    (1)使用save方法实现(2)使用create方法实现
  7. 返回单实例的查询方法: get查询
  8. 返回多条数据记录,使用QuerySet对象的查询
    (1)all():返回QuerySet中包含的所有对象
    (2)filter():返回一个新的QuerySet 它包含满足查找参数的对象
  9. 使用update方法更新单个或多个Model实例
    (1)更新单个模型
    (2)更新多个模型
  10. 使用delete删除单个或多个Model实例
  11. 应用:话题和评论的Model定义及新增、修改、删除(实验二重点)模型定义:参考post包下的models.py文件、使用模型默认管理器objects的对模型对象进行批量查询和批量修改。

四、管理后台

使用register方法

admin.site.register(Topic TopicAdmin)

装饰器修饰

@admin.register(Topic)

class TopicAdmin(admin.ModelAdmin)

五、视图

六、模板

程序填空内容(猜的)

实验二内容

python 复制代码
from django.contrib.auth.models import User
from django.db import models


# Create your models here.

class BaseModel(models.Model):
    created_time = models.DateTimeField(auto_now_add=True, help_text='创建时间')
    last_modified = models.DateTimeField(auto_now=True, help_text='修改时间')

    class Meta:
        abstract = True


class Topic(BaseModel):
    title = models.CharField(max_length=255, unique=True, help_text='话题标题')
    content = models.TextField(help_text='话题内容')
    is_online = models.BooleanField(default=True, help_text='话题是否在线')


class Comment(BaseModel):
    content = models.CharField(max_length=255, help_text='话题评论')
    up = models.IntegerField(default=0, help_text='支持')
    down = models.IntegerField(default=0, help_text='反对')

    topic = models.ForeignKey(to=Topic, on_delete=models.SET_NULL, help_text='关联话题表', null=True)


class Role(models.Model):
    name = models.CharField("角色名称", max_length=50, unique=True)
    # 多对多
    users = models.ManyToManyField(to=User)

实验5.1(ListView视图)

模板

简答(赌一手)




相关推荐
桀桀桀桀桀桀14 分钟前
数据库中的用户管理和权限管理
数据库·mysql
superman超哥1 小时前
04 深入 Oracle 并发世界:MVCC、锁、闩锁、事务隔离与并发性能优化的探索
数据库·oracle·性能优化·dba
用户8007165452001 小时前
HTAP数据库国产化改造技术可行性方案分析
数据库
engchina2 小时前
Neo4j 和 Python 初学者指南:如何使用可选关系匹配优化 Cypher 查询
数据库·python·neo4j
engchina2 小时前
使用 Cypher 查询语言在 Neo4j 中查找最短路径
数据库·neo4j
尘浮生2 小时前
Java项目实战II基于Spring Boot的光影视频平台(开发文档+数据库+源码)
java·开发语言·数据库·spring boot·后端·maven·intellij-idea
威哥爱编程2 小时前
SQL Server 数据太多如何优化
数据库·sql·sqlserver
小华同学ai2 小时前
AJ-Report:一款开源且非常强大的数据可视化大屏和报表工具
数据库·信息可视化·开源
Acrelhuang3 小时前
安科瑞5G基站直流叠光监控系统-安科瑞黄安南
大数据·数据库·数据仓库·物联网
YUJIANYUE3 小时前
PHP将指定文件夹下多csv文件[即多表]导入到sqlite单文件
jvm·sqlite·php