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视图)

模板

简答(赌一手)




相关推荐
wclass-zhengge3 分钟前
Redis篇(Redis原理 - 网络模型)
网络·数据库·redis
周周写不完的代码12 分钟前
redis-数据类型
数据库·redis·缓存
shylyly_32 分钟前
Linux的基本指令(3)
数据库·mysql·linux的基本指令
2402_857583491 小时前
新闻推荐系统:Spring Boot的架构优势
数据库·spring boot·架构
Data 3171 小时前
Hive数仓操作(三)
大数据·数据库·数据仓库·hive·hadoop
斯凯利.瑞恩1 小时前
大数据分析入门概述
大数据·linux·数据库·sql·hdfs·bi
栀夏6131 小时前
MongoDB 用户管理
数据库
原机小子2 小时前
大学生就业桥梁:基于Spring Boot的招聘系统
服务器·数据库·spring boot
daxian_am4612 小时前
k8s image error
java·数据库·kubernetes
开心工作室_kaic3 小时前
基于微信小程序的校园失物招领系统的设计与实现(论文+源码)_kaic
c语言·javascript·数据库·vue.js·c#·旅游·actionscript