前后端分离第一课--创建app与model在数据库中执行

一、创建APP

在Terminal里面输入 python manage.py startapp student
如果在根目录里面创建的app多了,目录可能就会很乱,这个时候,就可以在django项目下新建一个Python Package
命名为apps,将新建的student app拖进去,然后在apps上面右键mark directory as Test Sourcse Root
这个时候apps文件夹的颜色就会变为深蓝色
进入settings.py文件中,修改三处位置
1.import os,sys#表示python除了到根目录下找APP,还要从apps下面找APP

2.BASE_DIR = Path(__file__).resolve().parent.parent
sys.path.insert(0,os.path.join(BASE_DIR,'apps'))

3.
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'student',
]


二、创建库、表、字段


1.在student.models文件中进行编辑


from django.db import models

# Create your models here.
# Create your models here.
# Student: 学号,姓名,性别,出生日期,手机号码,邮箱地址,家庭住址,照片


class Student(models.Model):
    gender_choices = (('男','男'),('女','女'))
    sno = models.IntegerField(db_column="SNo", primary_key=True, null=False) # 学号,不允许为空,主键
    name = models.CharField(db_column="SName", max_length=100, null=False)  # 姓名,最长100个字符,不允许为空
    gender = models.CharField(db_column="Gender",max_length=100,choices=gender_choices) # 性别,选项选择
    birthday = models.DateField(db_column="Birthday", null=False) # 出生日期,不允许为空
    mobile = models.CharField(db_column="Mobile", max_length=100) # 手机号码,
    email = models.CharField(db_column="Email",max_length=100) # 邮箱地址
    address = models.CharField(db_column="Address",max_length=200) # 家庭住址
    image = models.CharField(db_column="Image", max_length=200,null=True) # 照片

    # 在默认情况下,生成的表名:App_class, 如果要自定义 ,需要使用Class Meta来自定义
    class Meta:
        managed = True
        db_table = "Student"

    # __str__方法
    def __str__(self):
        return "学号:%s\t姓名:%s\t性别:%s" %(self.sno,self.name,self.gender)


2.在student.__init__.py下面进行编辑


#要想model文件能执行,必须在处加上下面的两行代码
import pymysql
pymysql.install_as_MySQLdb()
当前上面引用的前提是:
你在本地的库安装了 pip install pymysql
3.执行命令:
python manage.py makemigrations
便会在migrations文件夹下面生成脚本文件:0001_initials.py
再运行命令:python manage.py migrate
便把脚本执行在数据库中了
 

猜你喜欢

转载自blog.csdn.net/qq_40333984/article/details/126272774
今日推荐