django 不用自带的mysql_稍微记录下Django2.2使用MariaDB和MySQL遇到的坑

现在演示一下整个流程吧

1.创建项目和应用

20190428111312851657.png

PS:你也可以使用PyCharm直接创建项目

2.注册应用

先把刚刚创建的应用添加进去

20190428111313182690.png

3.配置MySQL或者MariaDB

20190428111313569384.png

4.PyMySQL替换默认的MySQLdb

Django使用的MySQLdb对Python3支持力度不够,我们用PyMySQL来代替

20190428111313893582.png

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

20190428111314239263.png

5.创建数据库

Django除了默认的sqlite会帮你创建数据库外(只创建对应的表),其他数据库都不会帮你创建的,所以你需要自己创建

20190428111314606427.png

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,所以不用管它

20190428111315017534.png

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

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

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

20190428111315500901.png

发现是对字符串进行了decode解码操作:(一般对字符串进行编码,二进制进行解码)

20190428111315917867.png

解决也很简单,改成encode即可

20190428111316268430.png

8.再运行

再运行就没错误了

20190428111316655124.png

但也没有什么东西

20190428111316948074.png

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

20190428111317287896.png

9.生成对应的数据库

先创建一个用户的模型类

20190428111317634554.png

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

20190428111318027107.png

这个有点类似Net的CodeFirst了

20190428111318389388.png

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

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

20190428111318687221.png

创建超级管理员

20190428111318998724.png

在admin中注册对应的模型类

20190428111319319016.png

这时候运行就可以管理对应的页面了

20190428111319615872.png

登录页面

20190428111320056274.png

后台管理主页

20190428111320344341.png

这时候就可以创建修改UserInfo类了

20190428111320702717.png

我随便创建了几个用户

20190428111321016173.png

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

20190428111321303264.png

然后刷新下列表页就ok了(如果手动输入命令则不用重启服务器,通过PyCharm运行的需要重新启动下)

20190428111321765149.png

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值