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

  • 相关阅读:
    node 学习资源网址---存根
    组件通讯
    vue------反响代理
    基于angular4.0分页组件
    angular4.0 父子组建之间的相互通信
    h5 新增特性用法---持续更新
    h5可预览 图片ajax上传 (补更),后台数据获取方法---php
    原生js表单序列化----- FormData
    有意思的面试题汇总----持续更新
    原生ajax封装,数据初始化,
  • 原文地址:https://www.cnblogs.com/dotnetcrazy/p/10782441.html
Copyright © 2011-2022 走看看