标签:请求 py 视图 django user Django
什么是web应用
软件开发架构
c/s架构:客户端/服务端
b/s架构:浏览器/服务器
本质:b/s架构其实就是c/s架构
HTTP 协议
http协议:超文本传输协议,规定了客户端与服务端之间的传输格式
四大特性
'''
1.基于TCP/IP协议作用于应用层的协议
2.基于请求响应
3.无状态
4.无连接
'''
数据格式之请求:
'''
请求首行
请求头(一堆k,v键值对)
请求体(post请求携带的数据)
'''
数据格式之响应
'''
请求首行
请求头(一堆k,v 键值对)
请求体(post请求携带的数据)
'''
响应状态码
'''
1XX 服务器已经成功接受到你的数据正在处理,你可以继续提交其他数据
2XX 请求成功 服务器已经将你请求的数据发送给你了
3XX 重定向
4XX 请求资源不存在
5XX 服务器错误
'''
模块渲染
渲染:后端生成的数据直接传递给前端页面使用(并且前端页面可以灵活的操作该数据)
模块渲染:借助第三方模块
pip install jinja2
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 %}
手撸web框架思路
'''
1、导入 impor socket
2、定义服务器:
3、循环,阻塞等待连接
4、根据http协议发送请求
5、手动处理http数据,获取用户访问的路径
6、路由匹配上后返回数据,当匹配不上是统一返回404
'''
基于wsgiref手撸框架
# 主逻辑
1、导入wsgiref模块
2、sever = make_server('127.0.0.1',8080,run)
3、定义run函数
def run(env,response)
'''
env:请求信息,大字典里面装满K,V键值对
response:响应信息,固定写法
'''
4、获取用户路径 env.get(PATH_INFO)
5、循环对比路由与视图函数之间映射关系,匹配成功结束循环
# URL:映射关系视图
# view:定义各种功能块
Django
python 三大主流web框架
'''
django:功能全面,但是笨重
flask:短小精悍,但是功能单一需要依赖第三方库
tornado:异步非阻塞,主要用在处理高IO
'''
'''
a:socket
b:路由和视图函数
c:模块渲染
Django:
a用的别人的 wsgiref
b自己写的
c自己写的
Flask:
a用的别人的 werkzeug
b自己写的
c用的别人的 jinja2
Tornado:
a,b,c都是自己写的
'''
注意事项
1.计算机的名称不能有中文
2.一个pycharm窗口就是一个项目,不要多个项目放在一个窗口里面
3.项目名不能起中文
Django简介
版本问题
django下载
推荐下载1.11.11版本
命令行直接下载
pip3 install django==1.11.11
pycharm下载
验证是否下载成功
django-admin
创建Django的方式
# 方式1(命令行式):
'''
1、创建Django项目:django-admin startproject 项目名
2、创建app应用:python3 manage.py startapp app01
3、启动Django项目:python3 manage.py runserer
ps:用命令行创建django默认不会自动创建templates文件夹
需要你手动自己创建(注意改文件夹路径是否被添加配置文件中)
'''
# 方式2(pycharm创建)
'''
FILE >>> new project 选择第二个django 需要注意名字不能有中文,选择本地的解释器,勾选后台管理
创建app
pycharm命令行创建
python3 manage.py startapp app01
Tools下面run manage task功能栏:startapp app02
启动点击运行
'''
注意新创建的app需要在配置文件中注册才能生效
Django各个文件的作用
应用名
'''
migrations: 数据库迁移记录相关数据
admin.py: django后台管理
models.py: 模型表相关
views.py: 视图函数相关
'''
项目名
'''
settings.py: 配置文件
urls.py: 路由与视图函数映射关系
'''
templates
项目用到的所有的html页面
manage.py
django入口文件
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 重定向
标签:请求,py,视图,django,user,Django 来源: https://www.cnblogs.com/king-home/p/10982084.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。