1. DRF的权限管理Django REST Framework的权限管理包括两个部分。一个是认证Authentication方式。指定对用户进行鉴权的方式,获取request.user。一个是权限控制Permissions。针对Django资源、用户类别进行权限控制。1.1 认证方式相关源码在re
Django中有两种视图,一种是函数式视图,另一种是类视图。视图的作用主要是,用于填充逻辑,返回响应体。函数式视图难以扩展,代码复用率低。而类视图可以利用继承、Mixins,快速复用、扩展功能。本文主要讨论了,Django对类视图的处理逻辑,类视图装饰器实现。1. Django的视图Django的U
1. 基本概念Django内置了一个信号分发器。信号可以帮助解耦程序模块。在应用中其他地方发生某事件时,通知指定函数。信号允许某些 senders 通知一组 receivers 已经发生的行为。2. 信号使用2.1 声明信号在使用信号之前,首先得创建信号实例,声明信号的接收参数列表。django.d
1. 基本概念ORM:对象关系映射,Object Relational Mapping。它的作用是在关系型数据库和对象之间作一个映射。不需要复杂的 SQL 语句,操作数据如同操作对象一样简单。QuerySet:给定模型的对象列表。QuerySet 允许从数据库中读取数据,对其进行筛选、排序等操作。M
1. 自动生成HTML表单元素Widget,用来渲染成HTML元素的工具。指定小部件1 2 3 4 5 6 from django import forms class CommentForm(forms.Form): name = forms.CharField() url =
1. Fixtures 特点Fixtures 是一种新的提供初始化数据的方法,并且被 Django 的测试框架用来处理单元测试的测试数据。不同于 SQL 文件的是,使用 fixture 可以提供一个被 Django 的 serialization 系统所能识别的序列化文件,它会被读取并自动转换成对应
Vagrant 适合用来管理虚拟机,而 Docker 适合用来管理应用环境。为了更好地模拟真实运行环境,本系列文章借助 Docker 和 Docker Compose 搭建 Nginx + uWSGI+ Django + MySQL + Redis + Rabbit 的开发环境。1. 基本概念Doc
1. 部署架构浏览器访问一个页面的程序处理流程:(1),浏览器向 Nginx 发起一个请求,如果匹配到 Nginx 的静态 URL,比如 /static 目录下的 js、css、404.html 等文件,那么 Nginx 直接返回文件。其他请求 URL,通过 uwsgi_pass 配置转给 uWSG
1. 目录结构 1 2 3 4 5 6 7 8 9 10 11 12 ├── django-devops-nginx │ ├── Dockerfile │ └── nginx.repo ├── django-devops-compose │ ├── docker-comp
1. 目录结构django-devops-uwsgi 目录是打包 uWSGI 和 Django 的镜像编译文件。在镜像中安装 uWSGI、pip、virtualenv等必要的程序包。在使用镜像创建容器时,执行 start.sh 脚本, 创建 Python 虚拟运行环境,从 Django 的 requ
1. 直接返回文件如果静态文件在工程根目录的 media/test.zip,需要先将文件读入内存,再进行传输。代码如下:settings.py 配置1 2 PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__)) MEDIA_ROOT = o
1. Django 静态文件分类Django 静态文件分为两类:static 和 media。static: 是页面引用的 JS、CSS、Image 等文件media:是用户上传的文件2. 生产环境配置生产环境,通常配置 Nginx 转发静态文件请求,而 Django 处理动态请求。nginx 配置
1. 关于 Django 的性能Django 是一个 Python 写的 Web 应用框架。使用 Django ,可以非常简单、高效地开发复杂的数据驱动的网站。同时,Django 非常注重组件的重用性、可插拔、敏捷开发、DRY(Don’t Repeat Yourself)。从一定程度上讲,Djang
笔者目前使用 Django 从事 SaaS 开发,同时开发和维护多个 SaaS 应用。在很多 SaaS 应用中都约定了错误码,有的用于处理登录态,有的用于标记业务逻辑状态。对于这种项目共性很强的特征,花时间学习和研究是非常有必要的。本篇主要讨论了错误码的用途、如何设计错误码、使用 Django 中间
1.问题描述背景:一个 Django 开发的 SaaS 应用,对外提供文档服务功能。其中,搜索功能通过 Django Haystack 实现。问题:搜索功能有时可用,有时不可用。多次测试,发现可用和不可用会交替出现,出现概率各占约 50%。补充一下搜索功能实现的细节:Django Haystack
在需求逐步确认的过程中,系统的 DB 模型也逐步确认。有时使用,MySQL Workbench 这类工具绘制 E-R 图,然后生成 MySQL 数据库表,这时就需要反向生成 Django Models;有时直接写 Django Models ,但是又需要查看 E-R 图。本文主要解决上面两个需求,实
创建 Django 工程1 django-admin startproject your_project_name 创建应用1 2 3 django-admin.py startapp your_app_name # 或者 python manage.py startapp your_app_nam
在 Django 中,request 包含了一次请求的全部信息。后端处理逻辑经常需要用到 request 中的信息。比如, DRF 框架中想要随时能够获取到 request,或者将一些参数全局传递。Django 第三方 App 中有一些工具可以满足要求,但它们并不是安全可靠的。意思是,如果 Djan
最近,我负责开发一个重后端的应用。这个应用数据流向复杂,处理逻辑冗余堆积。项目技术栈选择的是 Django + Vuejs。前端使用 Webpack 打包,模块化管理,主要是展示数据。后端涉及的模块多,处理规则多,数据表多,每次涉及之前功能修改时,都消耗大量时间 review 代码。这让我意识到,在
主要记录最近遇到的一些开发问题,解决方法。1. WhiteNoise 转发静态文件Django 内置的静态文件服务器效率很低,而 WhiteNoise 是一个不错的替代品。具有如下特点:通常用于 PaaS 服务支持 wsgi 应用程序,针对 Django 进行了特殊适配配合 CDN 使用,更佳在 G