django实际使用笔记
本文主要记录在大数点工作时,使用django搭建后台应用过程中所学到的新知识与心得。
一、前言
总结实际项目中使用django搭建后台服务学习到的内容
二、view
1、使用APIview 在配置文件的INSTALLED_APPS部分添加“rest_framework”, 然后就可以在视图函数中调用了
# 状态码
from rest_framework import status
# response
from rest_framework.response import Response
# view类
from rest_framework.views import APIView在写view视图的时候,就不用函数,而是视图类
from rest_framework import status
from rest_framework.response import Response
from rest_framework.views import APIView
class ClassName(APIView):
def get(self, request):
pass
def put(self, request):
pass
# post, delete等这样的写法有一个好处,就是当请求的方法不对时,可以自动报错,提示“请求方式不被允许”类似的信息。 对应的,在url匹配中,可以这样
用as_view()的方式来调用相应的视图类
在视图内部的话,可以使用
来获取参数,第二个参数是默认值
三、uwsgi-动态配置django服务
参考: 官方文档: https://uwsgi-docs-zh.readthedocs.io/zh_CN/latest/WSGIquickstart.html 其他资料: https://www.cnblogs.com/qingspace/p/6838747.html、https://www.jianshu.com/p/0e85cf58e677 线程和进程的部分:https://blog.csdn.net/hehekk/article/details/85237375
开始之前先提醒一下,虽然在本地测试运行都很顺利,但是如果以后在云服务上搭建,可能会出现各种各样 的问题,千万不要觉得自己简单地成功了一次,以后就会了,除了认真了解其中的原理这一种方法,其他的情况都只是运气好或不好的差别。
1、安装
2、测试
首先要有一个可以正常运行的django项目,在项目中新建一个uwsgi_test.py的测试文件,
在项目中打开命令行
打开浏览器,输入上面的主机和端口后,如果看到"Hello wold",就表示uwsgi正常
3、编写配置文件
可以通过命令行控制uwsgi服务
当然这是开发时,部署要另外考虑。其中配置文件还不是很熟悉,
四、url
这部分没什么新奇的,大概只有一个就是使用了namespace这个变量,如下
当一个项目中有很多应用的时候,可以在项目下的url文件中,为需要的app添加命名空间,最初我学习的时候, 命令空间的作用是为了防止反解url名时错误,所以给不同类的url设置命令空间,但是这次我使用命名空间是为了 区分不同app中的url,这点与权限审核有关。比如我有几个应用,某些应用不需要任何权限,所有访问者都可以请求 ,但是有些应用比较特殊,需要高级权限才可以,当我使用中间件做权限审查的时候,又不想根据url一个个去区分的 时候,命名空间就可以把它们分开来。
五、中间件
这个资料有很多,其中第三个我没用过。
使用的时候,可以单独在项目地下创建一个middleware.py文件,其中写自定义的 中间件类。最近我学到很多活用request的方法,比如缓存放在request中,在process_request方法中 为所有的request添加相应的字典属性;还有
等等属性,
六、项目里的其他文件
除了app以外,一般我们还会添加几个文件,比如
其中常数文件与配置文件不同,只是放一些应用中常用的参数,一旦修改会涉及到很多地方,所以单独放在一个地 方。
七、日志
官方文档: https://docs.djangoproject.com/en/2.2/topics/logging/
下面是项目中setting.py文件中配置日志参数,这部分的详细配置也不太清楚,如果想详细学习一下的话,可以 看上面的文档,我稍微看了一下,不是很难,直接用模板估计也没什么问题。
在视图中使用,这个logger.error()中也可以添加自定义的字符串信息
八、配置文件中的其他配置
参考文档: https://blog.csdn.net/Odyssues_lee/article/details/80834438 官方文档: https://docs.djangoproject.com/en/1.11/ref/settings/
实际中setting并不是一个文件,而是一个模块,其中有三个文件,分别是prod, dev, tenv,对应正式, 开发和测试的环境。setting中的配置有很多,默认的和自定义都放在这里。我看了官方文档讲的也不多,上面的 算是比较详细的了。
1、默认的django配置
1、时间语言配置
最下面的USE_TZ不是很懂,时区这部分也比较复杂。 2、rest_framework
这个是自定义认证时关闭django默认的认证程序的设置 3、redis缓存配置 4、rabbitmq消息队列配置 这里并不涉及到celery,仅仅使用rabbitmq发送消息
九、manage.py
十、rabbitmq配置
十一、redis缓存
十二、数据库连接池
Last updated
Was this helpful?