HTTP协议
1超文本传输协议(应用层的,基于tcp\ip协议的) 2 3特点:无状态,无连接(短连接) 4 5请求消息格式:请求行\请求头部\空行\请求数据 6 请求行:GET 路径 HTTP/1.1 7 8响应消息格式:响应行\响应头部\空行\响应数据 9 响应行: HTTP/1.1 状态码 状态描述 10 11请求方法:get\post\put\delete\head\options\trace\connect\ 12 13get请求和post的请求的区别 14 get,数据放在url上,有长度限制,一般用于获取数据 15 post请求,数据放在请求数据部分,没有长度限制,一般用于提交数据 16http协议 17请求信息格式 18GET / HTTP/1.1 请求行 19Host: 127.0.0.1:8003 请求头 20Connection: keep-alive 21Cache-Control: max-age=0 22Upgrade-Insecure-Requests: 1 23User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36 24Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3 25Accept-Encoding: gzip, deflate, br 26Accept-Language: zh-CN,zh;q=0.9 27#空行 28请求数据 username=ziwen password=666 29 30 31get请求 请求数据部分是没有数据的,get请求的数据在url上,在请求行里面,有大小限制,常见的get请求方式: 浏览器输入网址,a标签 32post请求 请求数据在请求体(请求数据部分) ,数据没有大小限制, 常见方式:form表单提交数据 33 34 35状态码: 36 1xx请求被接受但是还在处理当中 37 2xx请求成功 38 3xx重定向(301永久重定向和302临时重定向) 39 4xx客户端错误(请求错误) 40 5xx服务器错误
MVC和MTV
1MVC模式 2 M -- model数据库相关 3 V -- views视图(逻辑相关) 4 C -- controller url控制器(url分发器) 5django -- MTV模式 6 M -- model数据库相关 7 T -- templates HTML相关(模板) 8 V -- views视图(逻辑相关) 9 + controller url控制器(url分发器,路由分发)
django安装使用
1安装:pip install django==1.11.9 2创建项目: django-admin startproject 项目名 3启动项目: python manage.py runserver 127.0.0.1:8001 4创建应用: python manage.py startapp app名称 5 指令创建的app需要配置 6 项目的settings配置文件中,installapps的列表,添加一个app名称作为配置 7 pycharm中创建完app之后,如果在想创建新的app,需要执行创建app的命令,并添加配置
url路由
1# url(r'^articles/(\d+)/(\d+)/', views.articles), #articles/2019/9/ 2 视图函数 3 def articles(request,year,month): # 位置参数 2019 9 4 print(year,type(year)) #2019 <class 'str'> #匹配出来的所有数据都是字符串 5 print(month) 6 7 return HttpResponse(year+'年'+ month +'月' +'所有文章') 8 9 10 # 有名分组参数 11 url(r'^articles/(?P<xx>\d+)/(?P<oo>\d+)/', views.articles), #articles/2019/9/ 12 #xx=2019 oo=9 关键字传参 13 14 def articles(request,oo,xx): # 关键字传参 2019 9 15 print(xx,type(xx)) #2019 <class 'str'> #匹配出来的所有数据都是字符串 16 print(oo) 17 return HttpResponse(xx+'年'+ oo +'月' +'所有文章') 18 19 20 21 22from app01 import views 23urlpatterns = [ 24 url(r'^index/',views.index) 25 url(r'^index/(\d+)/(\d+)/',views.index),无名分组,分组数据以位置传参的方式给了视图函数 26 url(r'^index/(?P<xx>\d+)/(?P<oo>\d+)/',views.index),有名分组,分组数据以关键字传参的方式给了视图函数,不在乎参数位置了,并且视图函数形参的名称要和又名分组的变量名称一样. 27] 28 29 30views.py 31def index(request,n,m): 32 return HttpResponse('xx')