稍微记录下Django2.2使用MariaDB和MySQL遇到的坑

如今演示一下整个流程吧前端

1.建立项目和应用

PS:你也可使用PyCharm直接建立项目mysql

2.注册应用

先把刚刚建立的应用添加进去sql

3.配置MySQL或者MariaDB

4.PyMySQL替换默认的MySQLdb

Django使用的MySQLdb对Python3支持力度不够,咱们用PyMySQL来代替数据库

这句话其实就是兼容代码,这样你导入mysqldb也至关于导入PyMySQL了django

5.建立数据库

Django除了默认的sqlite会帮你建立数据库外(只建立对应的表),其余数据库都不会帮你建立的,因此你须要本身建立编程

6.django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.

若是你的Django是最新的2.2,PyMySQL也是最新的0.93的话,你会发现Django会报错:服务器

django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.编程语言

这个是Django对MySQLdb版本的限制,咱们使用的是PyMySQL,因此不用管它
ui

7.AttributeError: 'str' object has no attribute 'decode'

再继续运行发现又冒了个错误:AttributeError: 'str' object has no attribute 'decode'编码

这个就不能乱改了,因此先调试输出下:

发现是对字符串进行了decode解码操做:(通常对字符串进行编码,二进制进行解码)

解决也很简单,改为encode便可

8.再运行

再运行就没错误了

但也没有什么东西

发现了个后台貌似也登陆不上

9.生成对应的数据库

先建立一个用户的模型类

生成对应的数据库(项目里能够写个build.sh的脚本批量化执行)

这个有点相似Net的CodeFirst了

10.生成对应的后台管理页面

设置后台语言,默认是英语的

建立超级管理员

在admin中注册对应的模型类

这时候运行就能够管理对应的页面了

登陆页面

后台管理主页

这时候就能够建立修改UserInfo类了

我随便建立了几个用户

这种对象直接tostring(str(xxx))会致使显示不人性化,若是想知道显示的字段也很简单:

而后刷新下列表页就ok了(若是手动输入命令则不用重启服务器,经过PyCharm运行的须要从新启动下)

是否是轻轻松松就解决了对数据库表的增删改查?这就是Django的强大之处

逆天点评:Net的MVC最擅长的就是快速生成前端页面和对应的验证,而Python的Django最擅长的就是快速生成后台管理页面。这两个语言都是快速建站的经常使用编程语言(项目 V1~V2 阶段)

相关文章
相关标签/搜索