浮躁是人生最大的敌人

Django

Posted on 2019-06-05 21:39  King'home  阅读(190)  评论(0编辑  收藏  举报

什么是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	  重定向

Copyright © 2024 King'home
Powered by .NET 8.0 on Kubernetes