1.配置python环境
2.下载Djiango
3.创建应用
4.注册应用
在模型里面创建数据表
1.设计模型
# 新闻表(newsinfo):
# ID :主键
# title :标题
# content :内容
# data :日期
# read :阅读量
# 模型类必须继承djiango。db。models。Model类
class NewsInfo(models.Model):
title = models.CharField(max_length=30)
content = models.TextField()
data1 = models.DateTimeField()
read = models.IntegerField()
1.生成迁移文件
python manage.py makemigrations
2.迁移文件
python manage.py migrate
项目后台管理系统
1.注册模型类,在admin下面注册
form .models import NewaInfo
admin.site.register(NewaInfo)
启动Djiango项目
python manage.py runserver
创建超级管理员账号密码
python manage.py createsuperuser
自定义管理页面
结果:
综上:
先是创建框架,然后创建应用,注册应用,然后注册模型(数据库),然后就是后台管理
这里用到的分别是:setting,apps,models,
视图回调(views.py)
从数据库中拿数据显示在页面上
modes和view就是上面的内容
下面是templete
在view里面返回页面
总结:
拿去模板渲染的数据必须是一个字典
配置数据库模型配置
总结一下以上内容
1.创建项目
2.创建app
3.在setting挂载应用配置数据库
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'web',
"USER":"root",
"PASSWORD":"zrd42685500",
"HOST":"localhost",
"PORT":3306,
}
}
4.在model里面创建模型
from django.db import models
# Create your models here.
class NewsType(models.Model):
name = models.CharField(max_length=20, verbose_name='新闻类型名字')
#指定表的名字
class Meta:
db_table='newType'
#表的说明信息,在后台可以看到
verbose_name='新闻类型表格'
#可以设置更改对象的显示
def __str__(self):
return self.name
class NesInfo(models.Model):
title = models.CharField(max_length=100, verbose_name="新闻标题")
content = models.TextField(max_length=100, verbose_name="新闻内容")
read = models.IntegerField(verbose_name="阅读量")
comment = models.IntegerField(verbose_name="评论数量")
type = models.ManyToManyField('NewsType',verbose_name="新闻类型")
class Meta:
db_table='news'
verbose_name='新闻列表'
def __str__(self):
return self.title
5.在admin注册后台
from django.contrib import admin
# Register your models here.
#定义模型管理类
from .models import NewsType,NesInfo
class NewsTypeAdmin(admin.ModelAdmin):
list_display = ('id','name')
class NewsInfoAdmin(admin.ModelAdmin):
list_display = ('id','title','content','read','comment')
#注册到admin后台
admin.site.register(NewsType,NewsTypeAdmin)
admin.site.register(NesInfo,NewsInfoAdmin)
#进入后台还需要创建超级管理员账号 zh-hans
#将后台语言配置改为中文,地区数据改为上海 Asia/shanghai
模型类数据查询方法
get方法:查询一条数据
第二个视频的总结
在setting文件夹
BASE_DIR :项目的绝对路径
DEBUG: 调试模式和发行模式
ALLOWHOST:请求头
路由:视图函数:HttpResponse对象
路劲转换器,用来匹配路由
用正则表达式来路由转换:
数据请求和返回
request关键字里面的属性
响应状态码:
响应:
get和post请求
get请求
MTV模式:
url反向解析
反向解析:
静态文件
就是去setting里面去设置路径,然后写代码就行
分布路由
视图函数引入了include
模型层ORM
类是表,对象是行
属性是字段
有个meta类:
这个模型类都会有一个objects对象被同样继承下来:
创建数据:
第二种:
查询
重写输出操作:
排序:
查询方法:
值返回一条数据:
修改:
删除数据:
F对象:
Q对象
聚合查询
分组聚合:
一般都是先分组再聚合
还可以原生数据库操作:
admin后台管理
1.创建用户:
python manage.py createsuperuser
2.在app的admin里面注册模型类:
3.模型管理器类,可以更好的管理模型:
对每个模型都弄一个模型管理类
创建类这里可以修改后台管理的名称
控制哪些列可以链接到修改页:
list_display_links=[]. //列名
后台显示的数据也可以用过滤器:
list_filter=['pub']
添加搜索框:(模糊查询)
search_frields=['title']
设置可编辑列表:
list_editable=['price']
最后两个可以修改后台显示的数据
关系映射
创建数据:
正向查询,有外建的查主表:
反向查询:
我感觉所谓的外建就是两个表关联起来,你可以查我,我也可以查你
一个是用外建,一个是用隐藏属性
一对多 创建外建
正向查询:
反向查询:
多对多查询:
创建数据:
查询:
保持绘画状态
cookies:
sessin
把数据存到服务器上
完整项目
配置路由的注意事项,在urls里面只需要在后面加/
在html里面需要在前面也加/