sdu项目实训1-3 使用Django操作mysql数据库

Django操作mysql数据库


前言

首先在pycharm中安装配置好django和mysqlclient

一、Django配置mysql

使用之前先进行相关的配置

1.创建数据库

我使用Navicat工具创建MySQL数据库agriculture
sdu项目实训1-3 使用Django操作mysql数据库

2.在setting.py里进行数据库的配置

主要是对配置项DATARASES进行修改

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql', #将sqlsite3换为mysql
        'NAME': 'agriculture',
        'USER':'root',
        'PASSWORD':'123456',
        'HOST':'127.0.0.1',
        'PORT':'3306',
    }
}

二、使用ORM在数据库中建表

ORM(Object Relational Maping),对象关系映射

sdu项目实训1-3 使用Django操作mysql数据库

模型示例:

1.添加一个app

在pycharm终端输入命令
sdu项目实训1-3 使用Django操作mysql数据库
添加完成
sdu项目实训1-3 使用Django操作mysql数据库

2.添加模型类并注册app

(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'

3.数据库迁移

迁移是Django同步对模型所做更改(添加字段、删除模型等)到数据库模式的方式

(1)生成迁移文件

执行命令
python manage.py makemigrations
sdu项目实训1-3 使用Django操作mysql数据库
在migrations文件夹下生成了迁移文件
sdu项目实训1-3 使用Django操作mysql数据库

(2)执行迁移脚本程序

执行命令
python manage.py migrate

sdu项目实训1-3 使用Django操作mysql数据库
可以看到终端中噼里啪啦一顿OK

在Navicat中查看数据库
sdu项目实训1-3 使用Django操作mysql数据库
建表完成,还多了一些其它的表,Django自带的表

总结

先不总结

上一篇:Django中Form的Textarea字段


下一篇:CharField:Django文档——Model字段选项(Field Options)