我使用Navicat工具创建MySQL数据库agriculture
主要是对配置项DATARASES进行修改
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', #将sqlsite3换为mysql 'NAME': 'agriculture', 'USER':'root', 'PASSWORD':'123456', 'HOST':'127.0.0.1', 'PORT':'3306', } }
模型示例:
在pycharm终端输入命令
添加完成
(1)注册app就是在setting.py中的INSTALLED_APPS配置项中添加应用名
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'agriculture', #注册agriculture的app ]
(2)添加模型类
使用内部Meta类来给模型赋予属性,Meta类下有很多内建的类属性,可对模型类做一些控制
代码示例:
from django.db import models # Create your models here. class User(models.Model): useraccount = models.CharField('账号',max_length=50) password = models.CharField('密码',max_length=50) username = models.CharField('用户名',max_length=50) phone = models.CharField('电话',max_length=20) email = models.EmailField('邮箱') class Meta: db_table = 'User' #可改变当前模型类对应的表名 class City_cropinfo(models.Model): city = models.CharField('城市',max_length=10) year = models.CharField('年份',max_length=10) crop_type = models.CharField('种类',max_length=10) area = models.CharField('面积') weight_all = models.FloatField('产量') weight_avg = models.FloatField('单产') class Meta: db_table = 'City_cropinfo' class City_climateinfo(models.Model): city = models.CharField('城市', max_length=10) year = models.CharField('年份', max_length=10) month = models.IntegerField('月份') temperature = models.FloatField('气温') rain = models.FloatField('降水') class Meta: db_table = 'City_climateinfo' class Market_info(models.Model): market = models.CharField('市场',max_length=50) actul_type = models.CharField('名称',max_length=20) dim_type = models.CharField('类别',max_length=20) price = models.FloatField('价格') pyear = models.CharField('年份', max_length=10) pmonth = models.IntegerField('月份') day = models.IntegerField('日期') class Meta: db_table = 'Market'
(1)生成迁移文件
执行命令
python manage.py makemigrations
在migrations文件夹下生成了迁移文件
(2)执行迁移脚本程序
执行命令
python manage.py migrate
可以看到终端中噼里啪啦一顿OK
在Navicat中查看数据库
建表完成,还多了一些其它的表,Django自带的表
先不总结