Django_模型

1. 新建项目和应用

django-admin.py startproject learn_models # 新建一个项目
cd learn_models # 进入到该项目的文件夹
django-admin.py startapp student# 新建一个 people 应用(app)

补充:新建app也可以用 python manage.py startapp people, 需要指出的是,django-admin.py 是安装Django后多出的一个命令,并不是运行的当前目录下的django-admin.py(当前目录下也没有),但创建项目会生成一个 manage.py 文件。

那project和app什么关系呢?

一个项目一般包含多个应用,一个应用也可以用在多个项目中。


2. 添加应用

将我们新建的应用(student)添加到 settings.py 中的 INSTALLED_APPS中,也就是告诉Django有这么一个应用。

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

3. 修改models.py

我们打开 student/models.py 文件,修改其中的代码如下:

扫描二维码关注公众号,回复: 2083244 查看本文章

from django.db import models

# Create your models here.
class Student(models.Model):
    name = models.CharField(max_length=50,unique=True,null=False)
    age = models.IntegerField(default=0)

我们新建了一个Student类,继承自models.Model, 一个人有姓名和年龄。

这里用到了两种Field,更多Field类型可以参考教程最后的链接。

4. 创建数据表

python manage.py makemigrations student  # 让 Django 知道我们在我们的模型有一些变更
他会在student/migrations包下生成一个0001_initial.py 如图:
Migrations for 'student':
  student\migrations\0001_initial.py
    - Create model Student
Following files were affected 
 G:\Workspaces\python_wrok\MySchool\student\migrations\0001_initial.py

 
 

接着输入:

python manage.py sqlmigrate student 0001



结果如下:

BEGIN;
--
-- Create model Student
--
CREATE TABLE "student_student" ("id" integer NOT NULL PRIMARY KEY AUTOINCREMENT, "name" varchar(50) NOT NULL UNIQUE, "age" integer NOT NULL);
COMMIT;
Following files were affected


转存一下数据库:

python manage.py migrate student 0001

结果如下:

Operations to perform:
  Target specific migration: 0001_initial, from student
Running migrations:
  Applying student.0001_initial... OK
Following files were affected 
 G:\Workspaces\python_wrok\MySchool\db.sqlite3
Process finished with exit code 0


这样我们的数据库表就建好了



猜你喜欢

转载自blog.csdn.net/yl20175514/article/details/78473640