1、进行post请求时出现 403 forbidden
原因:跨站请求保护机制(CSRF)
解决1:在对应的 HTML 文件中的 POST 表单元素前加{% csrf_token %}
(这个没有解决我的问题)
解决2:在视图文件(views.py)中请求post的函数前加入csrf_exempt
装饰器,如下:
from django.shortcuts import render
from django.views.decorators.csrf import csrf_exempt # 首先导入必要模块
@csrf_exempt # 这里加入装饰器
def index(request):
if request.method=='POST':
username = request.POST.get('username')
password = request.POST.get('password')
return render(request, 'index.html')
2、使用 python3.6.8 + django2.1.7 + mysql8.0.15 ,执行python manage.py makemigrations
进行数据库迁移时报错
原因:Django默认使用的MySQLdb包,因为MySQLdb包仅仅支持python2.7,不支持python3,而Django内置使用于连接MySQL的只有MySQLdb,因此需要转换成pymysql这个几乎和MySQLdb一样包,但是支持python3的。参考自这里
解决:(1)安装 pymysql
包:pip install pymysql
(2)找到需要迁移的 app 目录下的 __init__.py
文件,添加如下代码:
import pymysql
pymysql.install_as_MySQLdb()