【Django学习笔记 - 7】:复习补充

简介: 【Django学习笔记 - 7】:复习补充

一、生产模式下静态文件路由配置


1、配置静态文件路由


首先创建一个Django项目,在settings.py文件中将 DEBUG=True(开发模式)改为 DEBUG=False(生产模式) ,然后在 ALLOWED_HOSTS = [] 中添加域名,因为现在还未开发项目,所以使用*(可添加任意域名),即ALLOWED_HOSTS = ['*']  

e66c5961b7a74e83af366b24255583d8.png

在settings.py文件下设置静态文件:STATIC_ROOT='static'

注意:STATIC_ROOT 不能与 STATICFILES_DIRS不能同时存在,否则会报错

0a053fe3c37441f3a017ae6ca2caf14f.png


创建一个子应用:app3,并注册到settings中,然后再根路由中写上路由路径。需要导入的模块: from django.views.static import serve,还需导入settings文件,使用的模块:from django.conf import settings。


{'document_root':settings.STATIC_ROOT},设置静态文件的查找路径


7bfff87b8079474ea54cc1a077a0f860.png


在根目录创建一个静态文件夹:static ,然后添加一张图片:1.jpg

在子应用app3中创建一个静态文件夹:static,在此文件夹又创建一个与子应用名相同的文件夹app3 ,然后在app3文件夹中放入一张图片:2.jpg

eba2125a942d412aa11a293a7d642154.png


检查程序,运行Django项目,在浏览器url中访问静态文件下的路径,查看是否可访问

a765bbbc2625434e98823cbe5bf0c30b.png


2、静态文件的集中管理


如果我们要访问子应用下静态文件的文件夹中

的文件也就是:/static/app3/2.jpg,是访问不到的,这时我们要进行静态文件的集中管理才能才能访问到子应用中的静态文件。


在终端中输入静态文件集中管理的命令:


python manage.py collectstatic


c7eee65bdadb40b5a5ea157ee7f4613e.png


行后,在给的提示内容后输入:yes

06d78f2d06de4c2bad54e50f63f36813.png


运行后可以看到,根目录下的静态文件下有两个文件夹,这两个文件夹就是收集到的静态文件

a30482ca13524c31afe68179ab9b4ccb.png


于是重新启动Django项目,在浏览器url中写上子应用的静态文件的路径,即可访问到子应用中的静态文件


db8ca1b8c04541fd8c3c1a8245294b22.png




二、Postman发送文件


1、在Postman中写上向网页发送的文件表单,username是键名,值是文件


7620e653ee63452eba5c67cfa09b2667.png

3c4fffe912f24f5b98be7b875aa060a0.png


2、在子应用中的views.py文件中写入接收文件的函数


form_data = request.FILES.get('username').read()

username:键名
read():用read()方法读取文件

f7c79a3649a84cf58d4e36ed56f7da02.png



3、在根路由和子路由中设置路由路径

901fb354c40b4e23a7b89f88e697d0cb.png

5ed6fe98bef24f3d950eb6278b9bcea7.png



4、在settings中注释掉一个语句(这个语句会在后面的项目中进行说明)


77e9e850c19f4bd7b47d20e95e31aa43.png


5、启动Django项目,在Postman中点击Send进行发送


d4b062dc1cc24c9ea8cf856100733289.png

afbf5c2c630d484789fd4971cbbbf9e2.png

image.png





三、HttpResponse响应对象


1、HTTP状态码

image.png

2、设置HttpResponse


语法: HttpResponse(content='', content_type='', status=)


content:响应内容


content_type:响应类型


status:响应状态码


代码演示

  • 在views.py中写入函数,并设置路由路径


8b4dc24af69247b4922ac1672e3a294f.png

70c9bd1cd3c148f8908c862038ac537c.png


运行Django项目,输入相应路径

9385665bfa414b0e96e3c2b4e6ca1814.png


image.png

8e52000b027e41c79108d44b503d434f.png


注意:当设置的相应类型错误时,会自动跳转到自定义的路由。也就是

b9fffab3cf304a7b9c1f54266ba558e6.png



重写状态码

117457dd6a934cf5b3d5ffa8c6d087d9.png




3、HttpResponse子类

Django为我们提供了一系列的HttpResponse的子类,可以快速设置响应状态码


HttpResponseRedirect: 302


HttpResponsePermanentRedirect: 301


HttpResponseNotModified: 304


HttpResponseBadRequest:400HttpResponseNotFound:404


HttpResponseForbidden:403


HttpResponseNotAllowed:405


HttpResponseGone: 410


HttpResponseServerError:500



可通过按下ctrl键,鼠标点击HttpResponse模块,然后鼠标下滑,就可看到关于HttpResponse子类的源码


50294cf8f01f43f6bcf5d26e30fa596c.png

7584e4db4d684f3db05b3bee0bdd9b15.png

相关文章
|
8月前
|
Python
基于Django的Python应用—学习笔记—功能完善
基于Django的Python应用—学习笔记—功能完善
|
8月前
|
存储 数据库 数据安全/隐私保护
基于Django的Python应用——学习笔记
基于Django的Python应用——学习笔记
|
安全 中间件 开发者
【Django学习笔记 - 9】:装饰器在类视图中的使用、中间件(开发中间件)、知识点小补充(子应用的集中管理)
【Django学习笔记 - 9】:装饰器在类视图中的使用、中间件(开发中间件)、知识点小补充(子应用的集中管理)
411 8
【Django学习笔记 - 9】:装饰器在类视图中的使用、中间件(开发中间件)、知识点小补充(子应用的集中管理)
|
数据库 数据安全/隐私保护 Python
【Django学习笔记 - 19】:认证、自定义认证、权限、限流
【Django学习笔记 - 19】:认证、自定义认证、权限、限流
295 0
【Django学习笔记 - 19】:认证、自定义认证、权限、限流
|
缓存 前端开发 数据库
【Django学习笔记 - 18】:drf请求响应简介、基类(APIView、GenericAPIView)、mixin扩展类与三级视图、视图集与路由2
【Django学习笔记 - 18】:drf请求响应简介、基类(APIView、GenericAPIView)、mixin扩展类与三级视图、视图集与路由
174 0
【Django学习笔记 - 18】:drf请求响应简介、基类(APIView、GenericAPIView)、mixin扩展类与三级视图、视图集与路由2
|
XML JSON 前端开发
【Django学习笔记 - 18】:drf请求响应简介、基类(APIView、GenericAPIView)、mixin扩展类与三级视图、视图集与路由
【Django学习笔记 - 18】:drf请求响应简介、基类(APIView、GenericAPIView)、mixin扩展类与三级视图、视图集与路由
221 0
【Django学习笔记 - 18】:drf请求响应简介、基类(APIView、GenericAPIView)、mixin扩展类与三级视图、视图集与路由
|
XML JSON 前端开发
【Django学习笔记 - 17】:序列化和反序列化(restful接口小案例、DRF的工程搭建、序列化器与序列化、验证、保存)
【Django学习笔记 - 17】:序列化和反序列化(restful接口小案例、DRF的工程搭建、序列化器与序列化、验证、保存)
549 0
【Django学习笔记 - 17】:序列化和反序列化(restful接口小案例、DRF的工程搭建、序列化器与序列化、验证、保存)
|
JSON 前端开发 JavaScript
【Django学习笔记 - 16】:DRF概述、Web应用模式(前后端分离简介)
【Django学习笔记 - 16】:DRF概述、Web应用模式(前后端分离简介)
311 0
【Django学习笔记 - 16】:DRF概述、Web应用模式(前后端分离简介)
|
Python
【Django学习笔记 - 15】:admin站点编辑(关联对象在列表页中添加,编辑页调整、图片设置)2
【Django学习笔记 - 15】:admin站点编辑(关联对象在列表页中添加,编辑页调整、图片设置)
110 0
【Django学习笔记 - 15】:admin站点编辑(关联对象在列表页中添加,编辑页调整、图片设置)2