• 关于django新版本无法使用MySQL数据库的问题


    关于django新版本无法使用MySQL数据库的问题

    参考这里

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

    现在演示一下整个流程吧

    1.创建项目和应用

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

    2.注册应用

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

    3.配置MySQL或者MariaDB

    4.PyMySQL替换默认的MySQLdb

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

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

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

    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 阶段)

  • 相关阅读:
    hdu 3074 Multiply game
    uva 10717 Mint
    uva 10128 Queue
    uva 10673 Play with Floor and Ceil
    hdu 1754 I Hate It
    hdu 1166 敌兵布阵
    uva 10079 Pizza Cutting
    费波那列素数
    uva 10236 The Fibonacci Primes
    hdu 1698 Just a Hook
  • 原文地址:https://www.cnblogs.com/victorfengming/p/11930965.html
Copyright © 2020-2023  润新知