Django框架篇
Django框架
1.HTTP超文本传输协议
-
8中请求方法
-
GET , POST ,HEAD ,PUT ,DELETE , TRACE ,OPTIONS ,CONNCT
-
-
状态码
-
1xx ;服务器收到请求,进一步处理
-
2xx :正常 200 ok
-
3xx : 重定向
-
4xx : 请求错误 403 404
-
5xx : 服务器错误
-
2.web框架
-
本质:socket服务端
-
功能:
-
socket收发消息 wsgi wsgiref uwsgi
-
根据不同的路径返回不同的内容
-
返回动态页面(字符串的替换,模板的渲染jinja2)
-
3.Django的MTV模式
-
Model(模型): 负责业务对象与数据库的对象(ORM)
-
Template(模板) : 负责如何把页面展示给用户
-
View(视图):负责业务逻辑,并在适当的时候调用Model和Template
-
此外Django还有一个urls分发器,它的作用是将一个个YRL的页面请求分发给不同的view处理,view再调用相应的Model和Template
4.Django常见命令
-
下载django
-
pip3 install django ==1.11.23 -i源地址
-
-
创建Django项目
-
django-admin startproject 项目名
-
代码创建的项目没有模板的存放文件夹,而pycharm中默认创建了.所以可以通过os.mkdir(os.path.join(BASE_DIR,'templates'))创建该路径,并在表单中的DIRS后的空列表添加拼接的路径
-
-
启动Django项目
-
python manage.py runserver 0.0.0.0:80
-
-
创建APP
-
一个Django项目可以分为多个APP,用来隔离不同功能模块的代码
-
python manage.py startapp app01
-
5.简单使用
-
设计url ,有对应函数 ,完成函数
6.静态文件的配置
STATIC_URL = '/static/' # 别名
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static')
]
STATICFILES_DIRS = [ #按照列表的顺序进行查找
os.path.join(BASE_DIR, 'x1'),
os.path.join(BASE_DIR, 'static'),
os.path.join(BASE_DIR, 'x2')
]
7.登陆的实例
-
form表单
-
action 提交的地址 method post
-
input 需要有name
-
submit 提交的按钮或者input
-
目前提交post请求,注释一个csrf 中间件
-
MIDDLEWARE = [
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
# 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
] -
`前端模板 http://www.jq22.com
-
-
8.app
-
新建APP
-
python manage.py startapp app名称
-
-
注册APP
-
在settings中
-
INSTALLED_APPS = [
'app01',
'app01.apps.App01Config', # 推荐写法
]
-
-
目录
-
admin.py django admin
-
apps.py app的信息
-
models.py 模型 model 跟数据库有关
-
views.py 写函数
-
9.orm
-
使用mysql数据库的流程
-
-
在settings中配置数据库:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # 引擎
'NAME': 'day53', # 数据库名称
'HOST': '127.0.0.1', # IP
'PORT': 3306, # 端口号
'USER': 'root', # 用户名
'PASSWORD': '123' # 密码
}
} -
使用pymysql模块连接mysql数据库。
写在与settings同级目录下的init.py中
import pymysql
pymysql.install_as_MySQLdb() -
写对应关系,在app下的models.py中写类。
class User(models.Model):
username = models.CharField(max_length=32) # username varchar(32)
password = models.CharField(max_length=32) # password varchar(32) -
执行数据库迁移的命令
python manage.py makemigrations # 记录下models.py的变更记录
python manage.py migrate # 变更记录同步到数据库