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?