稍微记录下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 阶段)
稍微记录下Django2.2使用MariaDB和MySQL遇到的坑的更多相关文章
- centos7下yum快速安装 mariadb(mysql)
从最新版本的centos系统开始,默认的是 Mariadb而不是mysql! 使用系统自带的repos安装很简单: yum install mariadb mariadb-server systemc ...
- 分布式监控系统Zabbix--完整安装记录(7)-使用percona监控MySQL
前面已经介绍了分布式监控系统Zabbix-3.0.3-完整安装记录(2)-添加mysql监控,但是没有提供可以直接使用的Key,太过简陋,监控效果不佳.要想更加仔细的监控Mysql,业内同学们都会选择 ...
- Linux下CenOS系统 安装MariaDB
1.首先去MariaDB官网下载安装包,首页是:https://mariadb.org/ 2.放在linux下的新建目录下:/root/mariadb 然后解压缩,命令为:tar -xzvf mari ...
- 随便记录下系列 - node->express
随便记录下系列 - node->express 文章用啥写?VsCode. 代码用啥写?VsCode. 编辑器下载:VsCode 一.windows下安装node.js环境: 下载地址 相比以前 ...
- 记录下UIButton的图文妙用和子控件的优先显示
UIButton的用处特别多,这里只记录下把按钮应用在图文显示的场景,和需要把图片作为按钮的背景图片显示场景: 另外记录下在父控件的子控件优先显示方法(控件置于最前面和置于最后面). 先上效果图: 1 ...
- 记录下ECharts的一些功能
用到ECharts记录下一些功能免得以后找文档找不到. 这个博客对ECharts讲解很全面 http://www.stepday.com/my.stepday/?echarts // 使用 requi ...
- C#值类型以及默认值记录下
C#的值类型有bool,byte,sbyte,decimal,double,float,int,uint,long,string等 如果我们擅长使用默认值,可以帮助我们减少带来赋值及代码编写. 比如我 ...
- 记录下mybatis中#{}和${}传参的区别
最近在用mybatis,之前用过ibatis,总体来说差不多,不过还是遇到了不少问题,再次记录下, 比如说用#{},和 ${}传参的区别, 使用#传入参数是,sql语句解析是会加上"&quo ...
- 记录下url拼接的多条件筛选js
本着为提高工作效率百度或者google这些代码发现拿过来的都不好用,然后自己写了个,写的一般但记录下以后再优化 <html> <head> <script> $(f ...
随机推荐
- acrobat pdf 按页拆分
百度 https://jingyan.baidu.com/article/37bce2be7098a21002f3a2f2.html 百度acrobat版本比我的高,操作不同了: 我的方案: 组织页面 ...
- 使用 MSIX 打包 DotNetCore 3.0 客户端程序
如何你希望你的 WPF 程序能够以 Windows 的保护机制保护起来,不被轻易反编译的话,那么这篇文章应该能帮到你. 介绍 MSIX 是微软于去年的 Windows 开发者日峰会 上推出的全新应用打 ...
- Openlayer 3加载本地ArcGIS切片
第一篇博客,简单的开个头吧.希望自己能坚持记录.一般什么情况什么人需要这样的需求呢,伐木的光头强大哥说我们在深山老林里,没网的啊,地图就手机本地duang的加载一下吧.那么Server啊就要丢掉丢掉. ...
- UE3中Object和Actor的创建与销毁
创建Object ① 在uc脚本中使用new运算符来创建 /********************************************************************** ...
- SpringMVC的相关知识
前几天学习了SpringMVC 感觉比Servlet好用得多具体如下: 首先SpringMVC的概念: SpringMVC是一个前端控制框架,主要用来负责与页面的交互.SpringMVC是Spring ...
- Eclipse 模板
Eclipse 的模板:推荐一个好的内容 设置注释模板的入口:Window->Preference->Java->Code Style->Code Template 然后展开C ...
- 数据加密--详解 RSA加密算法 原理与实现
RSA算法简介 RSA是最流行的非对称加密算法之一.也被称为公钥加密.它是由罗纳德·李维斯特(Ron Rivest).阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adlema ...
- C语言报错:error: expected ‘while’ at end of input } ^
在建线程池过程当中遇见上图所示错误: 解决方法: Linux中定义: SYNOPSIS #include <pthread.h> void pthread_cleanup_push(voi ...
- subgradients
目录 定义 上镜图解释 次梯度的存在性 性质 极值 非负数乘 \(\alpha f(x)\) 和,积分,期望 仿射变换 仿梯度 混合函数 应用 Pointwise maximum 上确界 suprem ...
- 转载:用Jquery实现的图片预加载技术,可以实现有序加载和无序加载!
一.背景 我们在做页面的时候,从用户体验的角度出发,肯定是希望用户以最快的速度看到完整的页面信息,但在实际情况中经常会遇到些问题. 比如受网速影响,页面加载素材的时间比较长,页面会出现短时间的错乱或者 ...