链接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':'1232222', # MYSQL密码 'HOST':'127.0.0.1', # MYSQL地址 'PORT':'3306' # 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字段