用Django一步步创建项目(二)

前面介绍了项目的创建,本节开始讲述创建数据表模型。

二、数据表模型

1.用Pycharm打开studentManageSystem, 编辑studnetmanage中的models.py,创建所需的类信息

from django.db import models

# Create your models here.


# 班级信息表类
class Classes(models.Model):
    title = models.CharField(max_length=32)
    teacher = models.ManyToManyField("Teachers")


# 学生信息表类
class Student(models.Model):
    stu_id = models.CharField(max_length=10, verbose_name='学号')
    stu_name = models.CharField(max_length=32,verbose_name='学生姓名')
    stu_gender = models.BooleanField()
    stu_phone = models.CharField(max_length=20,verbose_name='学生电话')
    # stu_addr = models.CharField(max_length=100, verbose_name='学生地址')
    stu_addr = models.CharField(verbose_name='学生地址')
    stu_cs = models.ForeignKey('classes', on_delete=models.CASCADE)

    class Meta():
        db_table = 'studentinformation'



# 教师信息表类
class Teachers(models.Model):
    TeacherName = models.CharField(max_length=32)

2.在setting.py中,将之前创建的应用注册

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'studentmanage',                # 注册创建的studenmanage应用 如果没有这个 创建数据库会报NO changes 错误
]

3.配置数据库

在setting.py中,修改DATABASE部分的内容

# 数据库配置
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',  # 指定用什么数据库
        'NAME': 'studentmanage',  # 指定数据库名
        'USER': 'root',  # 数据库账号,默认为root,如果你修改了,要记得修改为你的数据库账号
        'PASSWORD': 'mysql',  # 数据库密码,要注意修改为你的数据库密码
        'HOST': 'localhost',  # 数据库IP 本机用localhost
        'PORT': 3306,  # 端口
    }
}

因为使用mysql数据库,在项目中引用pymysql

在项目名称的init.py中修改,本列中为:studentManageSystem/init.py

import pymysql
pymysql.install_as_MySQLdb()

4.测试数据库

(1)在mysql中创建数据库studentmanage.(查看windows平台中mysql命令汇总(记录,方便自己,不断更新中)

create database studentmanage charset=utf8;

show databases;后可以看到创建的数据库。

(2)生成迁移文件:根据模型类型生成sql语句

提示有如下错误

修改init.py,指定pymysql的版本

import pymysql
pymysql.version_info = (1, 4, 13, "final", 0)
pymysql.install_as_MySQLdb()

 又有错误,根据提示修改(原因: CharField()  字符型字段,默认的表单窗口部件是TextInput。该字段类型有一个必需参数:max_length  在数据库水平限定了字符串最大长度。)

D:\PythonWeb\studentManageSystem>manage.py makemigrations
Migrations for 'studentmanage':
  studentmanage\migrations\0001_initial.py
    - Create model Classes
    - Create model Teachers
    - Create model Student
    - Add field teacher to classes

说明迁移生成模型成功,执行迁移

D:\PythonWeb\studentManageSystem>manage.py migrate

在mysql命令状态下,查看生成的数据表。

mysql> use studentmanage
Database changed

mysql> show tables;
+----------------------------+
| Tables_in_studentmanage    |
+----------------------------+
| auth_group                 |
| auth_group_permissions     |
| auth_permission            |
| auth_user                  |
| auth_user_groups           |
| auth_user_user_permissions |
| classesinfomation          |
| classesinfomation_teacher  |
| django_admin_log           |
| django_content_type        |
| django_migrations          |
| django_session             |
| studentinformation         |
| teachersinfomation         |
+----------------------------+
14 rows in set (0.00 sec)

mysql>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值