Django问题总结(持续更新)

最近准备用Django和vue.js写一个项目,所以学习一下Django的使用,主要跟着中文文档 https://docs.djangoproject.com/zh-hans/2.0/ 一起学习,也跟着快速入门写了个小项目,地址是 https://github.com/xjwhhh/DjangoStart。

开此文记录一下Django学习中遇到的一些问题,以供参考。水平不高,若有所疏漏,希望大家指正。

1.Error:MySQLdb Module 'Did you install mysqlclient or MySQL-python?

在连接mysql,使用命令行“python manage.py migrate“”创建数据表时报此错误

网上解决方法说,可以在__init__.py文件中加入以下代码解决:

import pymysql
pymysql.install_as_MySQLdb()

我尝试了,这并不能完全解决问题,会出现问题2

2.mysqlclient 1.3.3 or newer is required; you have 0.7.11.None

pip安装mysqlclient

pip install mysqlclient

这也是问题1的最好解决方式

3.vue,django跨域问题

vue前端使用axios向django后端发送post请求,这是一个跨域问题,网上大部分解决方式见此 https://segmentfault.com/a/1190000017952184?utm_source=tag-newest

我这样做了之后出现如问题4的403报错

4.Forbidden (CSRF cookie not set.)

解决:
(1)发送POST时带上 csrf_token (https://blog.csdn.net/lohiaufung/article/details/80792334)
这个我试了下好像没啥用,如果有成功的可以交流下

(2)给被调用的函数加上 csrf_exempt 标注
(http://lazybios.com/2014/09/django-disable-csrf-validation/)
这个成功了

(3)把django的CSRF功能关闭

我一开始觉得方法(2)不够安全,想使用网上主流的 https://segmentfault.com/q/1010000008292792 这种添加header的方法,但失败了,最终还是使用了方法(2),不知道转到生产环境后是否需要更改

你可能感兴趣的:(框架学习)