• 稍微记录下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 阶段)

  • 相关阅读:
    四个数判断大小
    生成随机数的效率问题
    vmware下ubuntu的网络配置
    安装Orcacle后使用DBCA(Database Configuration Assistant)卡住的问题
    Spring Tool Suit安装virgo server插件、virgo的下载
    centos的终端字体杂乱的问题
    vmware下minimum安装centos后配置网络
    hibernate session.save()和session.persist()的区别
    bootstrap结合google code prettify的问题
    jsp乱码问题
  • 原文地址:https://www.cnblogs.com/dotnetcrazy/p/10782441.html
Copyright © 2020-2023  润新知