DJango基础

DNS解析原理

1.根域
2.顶级域(.com,.orm,.edu)
3.权威DNS域(163.com,baidu.com)
4.二级域(www.163.com,mail.163.com,)

http协议

Http 短连接
请求头:
connection: keep-alive (默认的)\r\n
token: dbnsjandjsandjsandjsandjksa (自定义)
\r\n\r\n
请求体:
dbsajbdjsabdjsa
响应头:
响应的状态码:
200 403 404 500 502 (bad gateway)

响应体:(字符串)
用户看到的所有的内容

超文本传输协议:规定了客户端与服务端消息传输的格式

四大特性:
1.基于TCP/IP协议作用于应用层的协议
2.基于请求响应
3.无状态
4.无连接

数据格式之请求:
请求首行
请求头(一堆k,v键值对)

请求体(post请求携带的数据)
数据格式之响应:
响应首行
响应头(一堆k,v键值对)
响应体(post请求携带的数据
)

web框架

a. socket服务端改造
b. 路由系统:
将 uri 与 业务处理逻辑函数 对应

python三大主流web框架
Django:大而全,自带了很多功能模块,类似于航空母舰 (缺点:有点笨重)
Flask:短小精悍,自带的功能模块特别少,大部分都是依赖于第三方模块(小而轻)
Tornado:异步非阻塞 主要用在处理高io 多路复用的情况 可以写游戏后端

c. 模板引擎渲染
将数据库中的数据与html进行相结合, 模板的渲染

django基础

ps: utf-8 不要使用中文

创建django:
两种方式:
a.命令行
b.pycharm

启动django
方式1(命令行创建):
创建django项目
django-admin startproject 项目名
创建app应用
python3 manage.py startapp app01
启动django项目
python3 manage.py runserver
ps:用命令行创建django默认不会自动创建templates文件夹
需要你手动自己创建(注意改文件夹路径是否被添加配置文件中)

方式2(pycharm创建)
FILE >>> new project 选择第二个django 需要注意名字不能有中文,选择本地的解释器,勾选后台管理
创建app
pycharm命令行创建
python3 manage.py startapp app01
Tools下面run manage task功能栏
启动点小绿色箭头

强调:
	1.用django一定要保证只有一个在运行状态  切记切记!!!!!!!
	2.一定记得清浏览器的缓存

模板的渲染:

后台:
name = "zekai"
前台:

列表:
{% for item in mylist%}
{{item}}
% endfor %}

{{mylist.0}}

字典:
{% for key, val in mydict.items %}
{{key}} --- {{val}}

后端生成的数据直接传递给前端页面使用(并且前端页面可以灵活的操作改数据) >>> 模板语法

模板渲染 模板语法需要依赖于第三方模块
pip install jinja2

模板语法  jinja2支持前端直接使用类似于python的语法操作数据
<p>{{ user_dic }}</p>
<p>{{ user_dic.name }}</p>
<p>{{ user_dic['password'] }}</p>
<p>{{ user_dic.get('name') }}</p>

{% for user in user_dict %}  <!--[{},{},{},{}]-->
	<tr>
		<td>{{ user.id }}</td>
		<td>{{ user.name }}</td>
		<td>{{ user.password }}</td>
	</tr>
{% endfor %}

url:
request: 用户所有的请求信息:
请求方式: request.method
获取post中的内容: request.POST.get('key')
获取get中的内容 :request.GET.get('key')
登陆
redirect('/login/')

django小白必会三板斧

from django.shortcuts import render,HttpResponse,redirect

HttpResponse 返回字符串
render 返回一个html页面
两种给前端页面传值的方式
def reg(request):
user_dict = {'name':'jason','password':'123'}
return render(request,'reg.html',{'user_dict':user_dict})

	def reg(request):
		user_dict = {'name':'jason','password':'123'}
		return render(request,'reg.html',locals())

redirect 重定向

posted @ 2019-07-11 14:57  Huanghongzheng  阅读(135)  评论(0编辑  收藏  举报