稍微记录下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 ...
随机推荐
- 详解RPC远程调用和消息队列MQ的区别
PC(Remote Procedure Call)远程过程调用,主要解决远程通信间的问题,不需要了解底层网络的通信机制. RPC框架 知名度较高的有Thrift(FB的).dubbo(阿里的). RP ...
- C#打印模板设计,E店宝打印模板设置,winfrom打印模板设计,DevExpress.XtraReports.UI.XRTable 表格代码生成。
一.打印效果 二.代码编辑 1 .table1 : table控件的Name: 2.label33 :label控件 实现绑定[外部平台单号]的控件: 3.label32:绑定[E店宝订单编号](S开 ...
- react异步加载组件
1. 创建 asyncComponent 异步加载工具 import React from 'react' function asyncComponent(loadComponent){ class ...
- Android Studio教程05-Parcelables和Bundles.md
Parcelable并且Bundle对象旨在用于跨IPC / Binder事务等进程边界,活动与意图之间以及跨配置更改存储瞬态.本页面提供使用Parcelable和Bundle对象的建议和最佳实践 . ...
- SSM框架多数据源和AOP事务管理之间
- SQL SERVER 2012 AlwaysOn - 操作系统层面 01
搭建 AlwaysOn 是件非常繁琐的工作,需要从两方面考虑,操作系统层面和数据库层面,AlwaysOn 非常依赖于操作系统,域控,群集,节点等概念: DBA 不但要熟悉数据库也要熟悉操作系统的一些概 ...
- 【Spring Cloud笔记】Eureka注册中心增加权限认证
在Spring Cloud通过Eureka实现服务注册与发现时,默认提供web管理界面,但是如果在生产环境暴露出来,会存在安全问题.为了解决这个问题,我们可以通过添加权限认证进行控制,具体步骤如下: ...
- SQLServer之创建用户定义的数据库角色
创建用户定义的数据库角色注意事项 角色是数据库级别的安全对象. 在创建角色后,可以使用 grant.deny 和revoke来配置角色的数据库级权限. 若要向数据库角色添加成员,请使用alter ro ...
- python字典结构化数据
https://www.cnblogs.com/evablogs/p/6692947.html dict: 键-值(key-value)对集合{key:value},查找速度极快,但浪费内存. 1 2 ...
- SQL Server数据库漏洞评估了解一下
SQL Server Management Studio 17.4或更高版本的SSMS中提供了SQL Server漏洞侦测(VA)功能,此功能允许SQL Server扫描您的数据库以查找潜在的安全漏洞 ...