请求协议
1)请求首行:请求方式 请求路径 协议和版本,例如:GET /index.html HTTP/1.1。
2)2~n请求头:请求头名称:请求内容,即为key:value格式,例如:Host:localhost:8080。
3)空行:用来与请求体分开。
4)请求体:GET没有请求体,只有POST有请求体。
url:统一资源定位符(网址)
http://www.baidu.com:80/s/?wk=搜索&XX=xx
协议 //域名 :端口号 /地址 /?参数&参数
Django
包
_init_.py
settings.py 配置文件
urls.py 路由管理文件
wsgi.py WSGI协议匹配的一个文件
manage.py 可以管理文件、启动项目、同步数据库
启动项目命令 python manage.py runserver默认端口号8000,
直接修改127.0.0.1:9999
请求流程
1.浏览器发送请求
2.Django 找 setting.py 文件,ROOT_URLCONF = ‘dj02.urls’
3.Django 拿 url 的路径部分与 urls.py 中的 urlpatterns=[] 中的路径部分比较
4.1从上往下依次匹配,匹配成功
1)将HttpRequest 对象传递给视图函数的第一个参数(一般为request)
2)执行视图函数
3)响应,返回一个HttpRequest 对象
4.2匹配失败,page not found 报错 404
一、dj01
改setting.py的情况
1.创建新的app01时INSTALL_APPS注册文件名
INSTALL_APPS[‘app01’,]
2.使用独立静态文件配置(末尾添加)
STATICFILES_DIRS=[os.path.join(BASE_DIR’static’)]
3.使用mysql时配置(注销原有的sqlit3数据库有关配置)
DATABASS = {
'default':{
'ENGINE':'django.db.backends.mysql',
'NAME':'',
'USER':'',
'PASSWORD':'',
'HOST':'127.0.0.1',
'PORT':'3306'
}
}
urls.py导入include
from django.urls import path,include
urlpatterns = [ #创建子路由urls.py,在主路由中配置
path('app01/', include('app01.urls')),
]
二、app01
在app中使用独立静态资源、独立模板等都需创建独立路由
1在新建的app应用app01中创建名为urls的py子路由文件
1.1在app01目录下分别创建templates和static的目录,
(目录名文件名尽量不改变,因为pycharm中已经根据你创建的设定好)
2在主路由中添加include
from django.urls import path,include
urlpatterns = [
path('app01/',include('app01.urls')),
]
3.1在static目录下创建识别目录app01,放入静态资源,如图片(识别目录是为了方便文件迁移)
3.2在templates目录下创建识别目录app01,创建html文件并编写
加载图片用
`{% load static %}
<img src="{% static 'app01/1.jpg' %}" alt="">`
3编写子路由的view视图函数(可以无需上诉操作构建简单的app,view采用HttpResponse)
from django.shortcuts import render
def index(request):
return render(request, 'app01/index.html')
4配置子路由urls文件
from django.shortcuts import render
"""
如果: 外层 templates 和 app中的 templates 有相同的 页面
默认查找 外层 templates 内容。
加一层 识别目录。
多个app时查询顺序由setting中的注册顺序一致
"""
def index(request):
return render(request, 'app02/index.html')