新建一个django项目:
结构如下:
注:models.py是自己后新建的py文件
新建django_demo/models.py文件:
#!/usr/bin/python
# -*- coding: UTF-8 -*-
"""
@author:ZSW
@file:models.py
@time:2020/10/10
"""
from django.db import models
# Create your models here.
# 课程表
class CourseModel(models.Model):
cour_id = models.CharField(max_length=15, verbose_name='学生ID')
course = models.CharField(max_length=30, verbose_name='课程')
grade = models.IntegerField(default=60, verbose_name='分数')
class Meta():
db_table = 'course'
def __str__(self):
return '学生Id: 课程: 分数: '.format(self.cour_id, self.course, self.grade)
# 学生信息表
class StudentInformationModel(models.Model):
stu_id = models.CharField(max_length=15,verbose_name='学生id')
stu_name = models.CharField(max_length=30, verbose_name='学生姓名')
stu_phone = models.CharField(max_length=20, verbose_name='学生电话')
str_addr = models.TextField(verbose_name='学生地址')
stu_faculty = models.CharField(max_length=20, verbose_name='院系')
stu_major = models.CharField(max_length=30, verbose_name='专业')
# 取消外键(外键是可用的)
# stu_course = models.ForeignKey('CourseModel', on_delete=True)
class Meta():
db_table = 'studentinformation'
# 学生用户名密码表
class StudentModel(models.Model):
stu_id = models.AutoField(primary_key=True)
username = models.CharField(max_length=10, verbose_name='用户名')
password = models.CharField(max_length=10, verbose_name='密码')
class Meta():
db_table = 'student'
创建三个数据表,分别为course、studentinformation、student
接着修改django_demo目录下的setting.py文件:
在 settings.py 中找到INSTALLED_APPS这一项,如下:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django_demo', #添加此项
]
数据库连接:
在 settings.py 中找到DATABASES这一项,如下:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'E:/sqlite/sqlite-tools-win32-x86-3310100/student.db'),
}
}
上面这种配置表示: 1. sqlite 数据库 和 在项目根目录下 创建一个 student.db 数据库文件
2. 数据库的类型 以及 数据库的存储位置
mysql数据库连接方式:
DATABASES = {
'default': {
# 'ENGINE': 'django.db.backends.sqlite3',
# 'NAME': BASE_DIR / 'db.sqlite3',
'ENGINE': 'django.db.backends.mysql', # 数据库引擎
'NAME': 'student_management_study', # 数据库名称
'USER': 'root', # 连接数据库的用户名称
'PASSWORD': '123456', # 用户密码
'HOST': '127.0.0.1', # 访问的数据库的主机的ip地址
'PORT': '3306', # 默认mysql访问端口
}
}
现在所有的配置操作都已完成,再命令行中执行以下命令:
$ python3 manage.py migrate # 创建表结构
$ python3 manage.py makemigrations django_demo # 让 Django 知道我们在我们的模型有一些变更
$ python3 manage.py migrate django_demo # 创建表结构
执行显示如下:
E:\Pycharm2020project\Django_learn\django_demo>python manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying admin.0002_logentry_remove_auto_add... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length... OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying auth.0007_alter_validators_add_error_messages... OK
Applying auth.0008_alter_user_username_max_length... OK
Applying auth.0009_alter_user_last_name_max_length... OK
Applying sessions.0001_initial... OK
E:\Pycharm2020project\Django_learn\django_demo>python manage.py makemigrations django_demo
Migrations for 'django_demo':
django_demo\migrations\0001_initial.py
- Create model CourseModel
- Create model StudentInformationModel
- Create model StudentModel
E:\Pycharm2020project\Django_learn\django_demo>python manage.py migrate django_demo
Operations to perform:
Apply all migrations: django_demo
Running migrations:
Applying django_demo.0001_initial... OK
最后用navicat工具连接刚新建的数据库:
测试连接成功后,打开就可以看到自己刚新建的course、studentinformation、student三张表: