Django REST framework(DRF)最佳实践(一)
自己总结的一些合理配置,如有不足,可以指点,不是指指点点,一定悉心听取
settings,多环境配置
关于seetings,对于很多新手来说,会用系统的settings去修改即可,但是用于实际中,会区分不同的环境,比如开发环境和生产环境,本地或者远程等。建议是创建一个叫settings的文件夹,在文件夹中去创建不同的配置,一些公用的就放到settings_base.py中,比如说一些时区设置、认证设置、返回格式等等,开发环境就新建一个dev.py,将一些开发用到的放到开发环境,比如一些开发时测试用的库debug_toolbar之类的,创建后目录大致如下:
project_demo
├─apps
│ ├─app1
│ ├─app2
│ └─app3
├─project_demo
│ ├─settings
│ │ └─__init__.py
│ │ └─dev.py
│ │ └─prod.py
│ │ └─settins_base.py
│ ├─asgi.py
│ ├─urls.py
│ └─wsgi.py
└─utils
│ └─…
├─.env
…
请注意
在这里一定需要注意是settings文件夹中的__init__.py 这个文件,不能没有,而且里面需要有内容,比如说我的是要返回dev.py的配置,那么__init__.py中就要写上:
而在dev.py中,先将公用配置导入,再添加或者修改开发用到的一些额外配置,如图:
以上图片仅是我的配置,可以学习结构,但是别只顾着去抄,会报错的。
环境变量
不要直接放到settings中,新建.env文件,将环境变量存在到.env中
如:
使用如下:
- 安装 python-dotenv
pip install python-dotenv
- 在settings中使用
# settings_base.py from dotenv import load_dotenv # 如果部署时得到的环境变量为空,可以在括号内加上文件 如load_dotenv(os.path.join(BASE_DIR, '.env')) load_dotenv() SECRET_KEY = os.environ.get("SECRET_KEY")
使用apps文件夹统一管理app
在Django中,通常使用apps文件夹来统一管理应用程序。这使得应用程序更易于管理和维护,尤其是当您的项目变得更加庞大和复杂时。
以下是在DRF中使用apps文件夹的步骤:
-
在您的项目根目录下创建一个名为"apps"的文件夹。
-
在"apps"文件夹中创建一个新的应用程序。您可以使用以下命令来创建应用程序:
python manage.py startapp myapp
-
将应用程序添加到INSTALLED_APPS中。在settings.py文件中,将应用程序的名称从"myapp"更改为"apps.myapp":
INSTALLED_APPS = [ ... 'apps.myapp', ]
如果出现错误,将你应用myapp中的apps.py文件中的name改成apps.myapp
上述为一种方法,另一种是在settings中去配置添加apps路径,设置完成后,可以不写apps. 这部分,但是在编辑工具中会出现无法正确导入的情况,实际运行不显示,操作如下:
#settings_base.py
BASE_DIR = #省略
sys.path.insert(0, os.path.join(BASE_DIR, 'apps'))
遵循RESTful设计原则
pass
序列化器(Serializers)使用
pass
待后续更新吧
以上,以此记录并希望帮助后来者,如果对你也有帮助,不胜荣幸,也谢谢你的点赞