Django 模型
Django 模型是与数据库相关的,与数据库相关的代码一般写在 models.py 中,Django 支持 sqlite3, MySQL, PostgreSQL等数据库,只需要在settings.py中配置即可,不用更改models.py中的代码,丰富的API极大的方便了使用。
1. 新建项目和应用
打开CMD,进入到django的bin目录下(C:\Users\Kandy\AppData\Local\Programs\Python\Python37\Django-2.2.1\django\bin),键入以下命令:
django-admin.py startproject learn_models # 新建一个项目
cd learn_models # 进入到该项目的文件夹
python manage.py startapp people # 新建一个 people 应用(app)
补充:新建app这里用 python manage.py startapp people(创建项目会生成一个 manage.py 文件)。需要指出的是,一些资料上提到 django-admin.py 是安装Django后多出的一个命令,但是本人在cd到project目录(learn_models文件夹)下后执行django-admin.py startapp people时,会有错误提示的。
那project和app什么关系呢?
一个项目一般包含多个应用,一个应用也可以用在多个项目中。
2、添加应用
将新建的应用(people)添加到 settings.py 中的 INSTALLED_APPS 中,也就是告诉Django有这么一个应用。
# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'people',#添加应用
]
#
3. 修改models.py
打开 people/models.py 文件,修改其中的代码如下:
from django.db import models
# Create your models here.
'''
以下的类名代表了数据库表名,且继承了models.Model,
类里面的字段代表数据表中的字段(name),数据类型则由CharField(相当于varchar),max_length 参数限定长度。
'''
class person(models.Model):
user_name = models.CharField(max_length=32)
user_age = models.IntegerField()
user_sex = models.SmallIntegerField()
新建了一个person类,继承自models.Model, 一个人有姓名、年龄和性别。
4. 创建数据表
Django中,我们使用models来定义表,并且尽量不要跳过Django手动操作数据表。
同步数据库(使用默认的数据库 SQLite3,无需配置),先cd进入manage.py所在的那个文件夹下,输入下面的命令:
python manage.py makemigrations
python manage.py migrate
打开工程目录下的
db.sqlite3文件,可以看到刚才新建的表:
表名组成结构为:应用名_类名(如:people_person)。
注意:尽管我们没有在models给表设置主键,但是Django会自动添加一个id作为主键。
还没有评论,来说两句吧...