分类下相关文章
2021-04-13 · 阅读 1541 · 字数 107
我用 Django 3.2 LTS 获取微信小程序 login 提交的 code,代码如下: code = request.POST["code"] 但是报错: KeyError: 'code' 但是用 request.body 可以看到序列化的 json 字符串,里面包含了 code 数据。 用 json.loads 解析出来也可以,但这样不够优雅。 解决方法 将微信小程序中的 wx.request header: header: { 'content-type': 'application/json' }, 替换为 header: { 'conte ...
2021-04-13 · 阅读 1684 · 字数 161
在测试用 Django 实现微信小程序用户的登录逻辑,但是通过小程序端 wx.request 向 Django POST 数据时,报 403 错误。 403 问题原因 Django 的 CSRF 保护机制。 解决方法 将 login 接口单独排除在 CSRF 保护机制之外: from django.http import JsonResponse from django.views.decorators.csrf import csrf_exempt @csrf_exempt def login(request): rsp = { "code": ...
2021-03-22 · 阅读 1716 · 字数 100
还是习惯先手动创建 MySQL 表,然后生成对应语言的 Model 代码。 查了一下 Django 最近几年已经支持了该功能。(Django 3.1 下测试) 生成所有表的 Model 代码 $ python manage.py inspectdb 生成指定表的 Model 代码 例如 table1 这张表: $ python manage.py inspectdb table1 如果要生成指定的多张表 $ python manage.py inspectdb table1 table2 参考 https://stackoverflow.com/questions/1179469/is ...
2021-04-13 · 阅读 2533 · 字数 494
准备 pipenv 安装参考 安装 Django pipenv install Django 由于 Django 3.2 LTS 还未发布,所以默认安装的是 3.1 Downloading Django-3.1.7-py3-none-any.whl (7.8 MB) 如果没有使用国内源,下载、安装过程缓慢,需耐心等待。 tips: pipenv 更换国内源的方法: https://blog.csdn.net/jpch89/article/details/81952416 指定安装 Django 3.2 版本 pipenv install Django~=3.2 参考: https://pi ...
2021-02-24 · 阅读 4036 · 字数 188
最近又要做 Django 版本的选择了,于是整理了一下。 Django 版本列表 参考官方网站的下载页 https://www.djangoproject.com/download/ Django LTS 版本的维护时间 LTS 版的维护时间在 3 年 非 LTS 版也就 1 年出头 2.2 LTS 还是 3.2 LTS 2019 年后到 2021 年初只有四个版本 2.1 2.2 LTS 3.0 3.1 目前看等 3.2 LTS 是值得的,2021 年 4 月发布。 可以先用 3.1 进行开发,然后迁移到 3.2 LTS。 Django 3.2 LTS 版本需要注意的改动 参考 ht ...
2017-06-15 · 阅读 5823
Django 1.7 引入了 migration 的概念,用于方便的处理 model 中增加字段、删除字段 等造成的数据库改表问题。 为何要整理这篇笔记 使用了 Django 1.7 之后,发现将一个字段由 SlugField 修改成 CharField 之后, SlugField 对应的 index 并没有被删除掉。所以,需要确认一下,在什么情况下可以使 用 migration,什么情况下不可以使用。 migration 设计到的命令 python manage.py makemigrations 用于生成 migration 文件 python manage.py migrate ...
2015-12-12 · 阅读 52459
Django 的在线文档太卡了 在 Mac 上使用 Dash 将 Django 文档都缓存到本地就方便多了,可以节省大量的等待时间。 user 表的结构 CREATE TABLE "auth_user" ( "id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "password" varchar(128) NOT NULL, "last_login" datetime NOT NULL, "is_superuser" bool NOT ...
2015-12-12 · 阅读 7652
ORM 一直不喜欢用 ORM 做复杂关系,原因是不了解 ORM 对应的数据库表结构。 以及新建 Model 对象时,一些复杂属性如何初始化。 ForeignKey 在 SQLite 中,Foreign Key 对应的只是一个数字, 例如 owner = models.ForeignKey(User, null=True) .schema 之后会发现 "owner_id" integer, ManyToMany 例如,model 里增加一个 ManyToManyField tags = models.ManyToManyField(Tag) 实际上是新增了一 ...
2015-12-12 · 阅读 9641
在 ~/.bashrc 中设置环境变量 以标明这是生产环境,而非本地开发环境。 export DEBUG=False 使用 gunicorn & Nginx 使用 gunicorn 启动 django cd <YOUR-PROJECT-PATH> gunicorn <PROJECT-NAME>.wsgi -D -b 127.0.0.1:<PORT> Nginx 对应的配置 server { listen 80; server_name <YOUR-DOMAIN>; location / { prox ...
2015-12-12 · 阅读 7099
基于 Django 1.8 安装依赖 $ sudo pip install django 初始化项目 $ django-admin.py startproject myproject tips: 如果忘记 django-admin 的参数,可以直接输入 $ django-admin.py | less 看一下生成的代码结构 $ tree . ├── myproject │ ├── __init__.py │ ├── settings.py │ ├── urls.py │ └── wsgi.py ├── manage.py └── README.md 启动 Deb ...