链接MYSQL数据库
修改项目中的配置文件:
DATABASES = {
'default': {
# 'ENGINE': 'django.db.backends.sqlite3',
# 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
'ENGINE':'django.db.backends.mysql',
'NAME':'llll', #所应用的MYSQL数据库名称
'USER':'root', #MYSQL用户名
'PASSWORD':'', # MYSQL密码
'HOST':'127.0.0.1', # MYSQL地址
'PORT':'' # MYSQL数据库的端口号
}
}
NAME 即数据库的名字,在mysql连接前该数据库必须已经创建。
USER 和 PASSWORD 分别是数据库的用户名和密码。
设置完后,再启动我们的Django项目前,我们需要激活我们的mysql。
然后,启动项目,会报错:no module named MySQLdb。
这是因为django默认你导入的驱动是MySQLdb,可是MySQLdb对于py3有很大问题,所以我们需要的驱动是PyMySQL。
所以,我们只需要找到项目名文件下的__init__,在里面写入:
import pymysql
pymysql.install_as_MySQLdb()
问题解决!
linux操作系统查看数据库地址及端口号:
SHOW VARIABLES;
SHOW GLOBAL VARIABLES LIKE 'PORT';
如果出现以下错误,则修改数据库中用户密码后再执行makemigrations
access denied for user 'root'@'localhost'(using password:YES)
修改数据库用户密码
mysql> SET PASSWORD FOR '用户名'@'localhost' = PASSWORD('新密码');
再链接就好
Model字段
class Customer(models.Model):
'''客户信息表'''
name = models.CharField(max_length=32, blank=True, null=True,verbose_name="姓名")
# blank null 成对出现 只要出现null就写上blank 不然django提交表单时不会通过 提示输入框不能为空
qq = models.CharField(max_length=64, unique=True,verbose_name="QQ")
# unique 设置该字段唯一 数据不能重复 verbose_name 设置在django admin中显示的中文 source_choices = ((0, '转介绍'),
(1, 'QQ群'),
(2, '官网'),
(3, '百度推广'),
(4, '51CTO'),
(5, '知乎'),
(6, '市场推广')
) source = models.SmallIntegerField(choices=source_choices,verbose_name="客户来源")
# choices= 元组 只能插入元组内的元组中的第一个数据 referral_from = models.CharField(verbose_name="介绍人QQ", max_length=64, blank=True, null=True) consult_course = models.ForeignKey("Course", verbose_name="咨询课程")
content = models.TextField(verbose_name="咨询详情")
tags = models.ManyToManyField("Tag", blank=True, null=True,verbose_name="标签")
consultant = models.ForeignKey("UserProfile",verbose_name="销售顾问")
memo = models.TextField(blank=True, null=True,verbose_name="备注")
date = models.DateTimeField(auto_now_add=True,verbose_name="日期")
# auto_now_add 插入数据时自动添加当前时间 def __str__(self):
return self.qq class Meta:
verbose_name_plural = "客户信息表"
# 在django admin 中表的中文名称 unique_together = ('qq', 'name')
# # 联合唯一 qq字段 和 name字段
Django补遗(一)的更多相关文章
-
异步任务队列Celery在Django中的使用
前段时间在Django Web平台开发中,碰到一些请求执行的任务时间较长(几分钟),为了加快用户的响应时间,因此决定采用异步任务的方式在后台执行这些任务.在同事的指引下接触了Celery这个异步任务队 ...
-
《Django By Example》第四章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:祝大家新年快乐,这次带来<D ...
-
django server之间通过remote user 相互调用
首先,场景是这样的:存在两个django web应用,并且两个应用存在一定的联系.某些情况下彼此需要获取对方的数据. 但是我们的应用肯经都会有对应的鉴权机制.不会让人家随随便便就访问的对吧.好比上车要 ...
-
Mysql事务探索及其在Django中的实践(二)
继上一篇<Mysql事务探索及其在Django中的实践(一)>交代完问题的背景和Mysql事务基础后,这一篇主要想介绍一下事务在Django中的使用以及实际应用给我们带来的效率提升. 首先 ...
-
Mysql事务探索及其在Django中的实践(一)
前言 很早就有想开始写博客的想法,一方面是对自己近期所学知识的一些总结.沉淀,方便以后对过去的知识进行梳理.追溯,一方面也希望能通过博客来认识更多相同技术圈的朋友.所幸近期通过了博客园的申请,那么今天 ...
-
《Django By Example》第三章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:第三章滚烫出炉,大家请不要吐槽文中 ...
-
《Django By Example》第二章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:翻译完第一章后,发现翻译第二章的速 ...
-
《Django By Example》第一章 中文 翻译 (个人学习,渣翻)
书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:本人目前在杭州某家互联网公司工作, ...
-
Django
一.Django 简介 Django 是一个由 Python 写成的开放源代码的 Web 应用框架.它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的,即是 CMS(内容管理系统) ...
随机推荐
-
单页Web应用优缺点
一.定义单页 Web 应用 (single-page application 简称为 SPA) 是一种特殊的 Web 应用.它将所有的活动局限于一个Web页面中,仅在该Web页面初始化时加载相应的HT ...
-
带你入门带你飞Ⅱ 使用Mocha + Chai + SuperTest测试Restful API in node.js
目录 1. 简介 2. 准备开始 3. Restful API测试实战 Example 1 - GET Example 2 - Post Example 3 - Put Example 4 - Del ...
-
Java Web之Servlet
Servlet参考文献: 1.http://www.cnblogs.com/luoxn28/p/5460073.html 2.http://www.cnblogs.com/xdp-gacl/p/376 ...
-
C#委托初探
委托是一种定义方法签名的类型,可以与具有兼容签名的任何方法关联.您可以通过委托调用其中已添加的方法列表.委托用于将方法作为参数传递给其他方法.事件处理程序就是通过委托调用的方法.您可以创建一个自定义方 ...
-
CorelDRAW 实现蒙版效果的方法
CorelDRAW能够实现很多意想不到的小效果,其中包括了位图图像软件的处理功能,蒙版效果就是其中的一项.作为矢量图形处理软件,从理论上讲它并不具备蒙板技术,然而只是我们平常没有用到而已,利用图框精确 ...
-
想当然是编程最大的坑,记更新删除过期cookie无效有感
一般来说只要设置了cookie的过期时间,就可以实现删除cookie的作用. 可是我尝试了设置过期时间,清除cookie内容都无效. 最后才发现,我根本没有执行到那段设置过期的代码. 刚开始是因为登出 ...
-
浅淡Windows7 32位与64位/x86与x64的区别
看到有很多会员问到底是选Windows7 x86,还是选x64.这里简单的谈一下这这两种系统的区别. 简单的说x86代表32位操作系统 x64代表64位操作系统. 简单的判断电脑是否支持64位操作系 ...
-
udp之nat穿透的困惑
nat穿透实现:[A]内网地址[内A]192.168.1.176:25789通过stun服务器查询映射到的外网地址为外网地址[外A]212.10.55.124:26559UDPsocketA绑定到[内 ...
-
jQuery中.html(“xxx”)和.append(";xxx";)有什么区别
append是追加,html是完全替换比如<p id="1"><p>123</p></p>$("#1").htm ...
-
跨控制器跳转view——RedirectToRoute和RedirectToAction
已知控制器AccountController.cs和HomeController.cs,如果从页面Account/Login直接跳转到Home/Index,可以利用RedirectToRoute和Re ...