Django(2) 三板斧/http协议/静态文件

三板斧

(1) HttpResponse 返回字符串
	def welcome(request):
		return HttpResponse('注册成功')
(2) render 返回html页面,还可以往里面传值
	def login(request):
		return render(request, 'login.html')
(3)redict 跳转网页

http协议

一、四大特性
	1、基于请求相应
	2、基于TCP/UDP智商
	3、无状态就是不保存用户的信息
	4、无链接 请求一次回应一次

二、数据格式
	请求首行
	请求头(k:v健值对)
	/r/n 空行
	请求体(存放的是一些数据) -->并不是所有的请求方法都是有请求体的,get没有
	响应数据格式是一样的

三、响应状态码
	1xx 服务端已经接收到你的数据正在处理,你可以继续提交数据
	2xx 服务端已经成功响应你的数据
	3xx 重定向
	4xx 找不到你需要的数据或者不符合获得数据的条件
	5xx 服务端出现故障

静态文件

一、定义

写好之后不会自动动态改变的文件资源,比如css文件,js文件,图片或者第三方框架文件,默认会将所有的静态文件放在一个static文件夹内,我们会在Django目录下创建static文件夹,static文件夹下还会有css js img others,也可以根据项目的不同再继续建造

二、配置
🌹setting.py 静态文件配置

设置静态文件对应的url地址
STATIC_URL = '/static/'  # 接口前缀
	如果想访问静态文件资源,必须以static开头
	如果书写了接口前缀之后,就拥有了访问下列列表中所有文件夹内部资源的权限
	顺序就是列表的顺序,从上往下

静态文件存放的物理目录
STATICFILES_DIRS = [
	os.path.join(BASE_DIR, 'static'),
	os.path.join(BASE_DIR, 'static1'),
	os.path.join(BASE_DIR, 'static2')
]

🌹动态解析

{%load static%} -->相当于导入一个模块
<link rel="stylesheet" href="{% static '这里写css文件' %}">
<script src="{% static '这里写js文件' %}"></script>
有了这三句话,那么不管接口变成什么,都可以动态解析了

request对象方法

Django每一个view函数的第一个参数都是request

def reg(request):
	if request.method == 'POST': # request.method 获取当前的请求方法并且结果是一个纯大写的字符串类型
		username = request.POST.get('username') 
		# request.POST的结果是QueryDict  
		# QueryDict.get() 获取列表最后一个元素 
		# QueryDict.getlist() 获取整个列表
		# request.GET的结果是QueryDict  
		# QueryDict.get() 获取列表最后一个元素 
		# QueryDict.getlist() 获取整个列表
		# request.FILES 获取用户上传的文件,结果也是querydict,但是如果想要获取文件的话,必须在前端页面添加一个参数:<form action="" method="post" enctype="multipart/form-data">
		password = request.POST.get('password')
		print(username)
		print(password)
		models.User.objects.create(name=username, age=password)
	return render(request, 'reg.html')

视图函数书写格式

def login(login):
	if request.method=='POST':
	return HttpResponse('我很气愤')
return render(request,'login.html') --> 一开始过来肯定是get请求所以会先走这一条;
posted @ 2022-02-23 15:00  JudyJU  阅读(57)  评论(0)    收藏  举报