1.状态码
200,403,404,500
1** 信息,服务器收到请求,需要请求者继续执行操作
2** 成功,操作被成功接收并处理
3** 重定向,需要进一步的操作以完成请求
4** 客户端错误,请求包含语法错误或无法完成请求
5** 服务器错误,服务器在处理请求的过程中发生了错
2.根模块:
有着特殊的作用,不妨业务逻辑代码
就是起着支柱作用
3.应用搭建
创建工程项目:django-admin startproject 项目名如:myproject
创建应用方法1:python manage.py startapp 应用名如:myblog
创建应用方法2:django-admin startapp 应用名
步骤:1.创建应用之后,2.添加应用到根模块的setting配置中的INSTALLED_APPS = [ ' myblog' ]
3.写子模块视图views,4.写子模块路由urls, 5.用include写根模块路由
3、此时该项目就成功创建了一个子模块
|-- mysite # 项目名称
|-- mysite # 根模块
|-- __init__.py # 模块描述文件,初始化根模块
|-- settings.py # 项目的配置文件
|-- urls.py # 总路由配置文件
|-- views.py # 自己创建的,用于根模块的视图展示
|-- wsgi.py # 服务器文件(不允许删除,也不允许改动)实现了web server gateway interface
|-- myblog # 子模块
|-- __init__.py # 模块描述文件
|-- admin.py # 后台管理系统注册当前模块的功能
|-- apps.py # 当前应用的描述文件
|-- models.py # 模型定义文件
|-- tests.py # 测试模块
|-- views.py # 子模块的视图文件|--migrations.py # 同步数据库
|-- manage.py # 项目命令文件
4.数据库
关系型:结构严格,数据库的拆分:横向(利用外键再创建另一个表),纵向(字段)
1.轻量级:access,django自带的一个
2.中型:mysql,mariadb,db2,sqlserver
3.重量级:Oracle(安装需要内存硬盘大)
使用场景:需要安全保障的,永久保存的数据
eg:医院用户信息,订单信息
非关系型:结构不严格
redis,mongodb(并发控制比redis优良)
使用场景:比如缓存,比如需要及时的随时改变的数据,安全性要求不高
eg: 验证吗,电影排行实时更新
5.数据库的sql语句
1.ddl:定义型语句 create drop
2.dml:操作性语句CRUD
3.dcl:可以设置权限管理
6.ORM:对象关系映射
程序中是一对象存在,数据库其中是以关系表存在
映射:
1.一个类对应一个表
2.类的一个属性对应表的一列
3. 类对应的一个对象的属性值
7.程序的分层:
1.客户层:浏览器(火狐,谷歌)
2.表示层:与客户层交互
3.业务层:核心业务层逻辑
4.整合层:与资源层交互
5.资源层:数据库
8.连接数据库:
1.建立库
2.下载数据库的连接驱动:pymysql
3. 引入数据库驱动(在根模块的__init__.py中引入,并做伪装,pymysql伪装为MySQLdb)
import pymysql
pymysql.install_as_MySQLdb()
4.连接的设置setting
DATABASES = {
'default': {
'ENGINE‘: 'django.db.backends.mysql', #数据库引擎
'NAME': 'goods', #数据库名
'USER': 'root', #用户名
'PASSWORD': '123456', #密码
}
}
5.定义模型models.py
6.生成迁移文件:python manage.py makemigrations
查看生成的sql语句:python manage.py sqlmigrate 子模块名如:myblog 生成的文件如:0001
7.执行数据库同步:python manage.py migrate
9.关联关系
关联:对象之间的联系
关系:表之间的联系
数量:一对一,一对多,多对一,多对多
方向:单向,双向(查看)
综合:一对一单向,一对多单向,多对一单向,多对多单向
一对一双向, 无 ,多对一双向,多对多双向