zoukankan      html  css  js  c++  java
  • 稍微记录下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 阶段)

  • 相关阅读:
    python 并发编程 多线程 event
    python 并发编程 多线程 定时器
    python 并发编程 多线程 信号量
    linux top 查看CPU命令
    python 并发编程 多线程 GIL与多线程
    python 并发编程 多线程 死锁现象与递归锁
    python 并发编程 多线程 GIL与Lock
    python GIL全局解释器锁与互斥锁 目录
    python 并发编程 多线程 GIL全局解释器锁基本概念
    执行python程序 出现三部曲
  • 原文地址:https://www.cnblogs.com/dotnetcrazy/p/10782441.html
Copyright © 2011-2022 走看看