Python学习第三十课——通过ORM创建表以及长遇到的问题

首先创建一个新的Django项目:

在models下写下如下代码:

from django.db import models


# Create your models here.
# python manage.py makemigrations
# python manage.py migrate

class Book(models.Model):  # 表名
    name = models.CharField(max_length=20)  # name字段
    price = models.IntegerField()  # 字段
    pub_date = models.DateField()  # 字段


class Author(models.Model):
    name = models.CharField(max_length=32)
    age = models.IntegerField()

如果使用MySql需要改配置:

在setting.py中:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'test',  # 你的数据库名称
        'USER': 'root',  # 数据库用户名
        'PASSWORD': '123123',  # 数据库密码
        'HOST': '',  # 你的数据库主机,留空默认localhost 链接其他机器可以改其他
        'PORT': '3306',
    }
}

在工程文件中输入如下代码:

import pymysql
pymysql.install_as_MySQLdb()

然后在Terminal中输入:

就会在migrations文件夹中自动生成一个文件:

# Generated by Django 3.0.3 on 2020-03-02 06:23

from django.db import migrations, models


class Migration(migrations.Migration):

    initial = True

    dependencies = [
    ]

    operations = [
        migrations.CreateModel(
            name='Book',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=20)),
                ('price', models.IntegerField()),
                ('pub_date', models.DateField()),
            ],
        ),
    ]

此时创建表成功!!!

通过Database查表:

 

查看成功!!!

在此过程中会遇到的报错:

1、ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3

解决方法:

在工程文件中输入如下代码:

import pymysql
pymysql.install_as_MySQLdb()

如果不行就去下面这个目录下:

C:Users11AppDataLocalProgramsPythonPython38-32Libsite-packagesdjangodbackendsmysql

找到base.py

打开将以下代码注释掉即可:

 2、Server returns invalid timezone. Go to 'Advanced' tab and set 'serverTimezone' property manually.

解决方法:

进入MySQL 输入一下命令即可解决:

set global time_zone='+8:00';

 

原文地址:https://www.cnblogs.com/pyhan/p/12395756.html