[TOC]
Django模型层表操作之简单使用
一 简单示例
定一个Person模型,有两个属性first_name与last_name
from django.db import models
class Person(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30)
first_name与last_name是这个模型的字段,每个字段都被指定为类属性,每个属性都映射到数据库列。
上面的Person模型将创建如下一个数据库表
CREATE TABLE myapp_person (
"id" serial NOT NULL PRIMARY KEY,
"first_name" varchar(30) NOT NULL,
"last_name" varchar(30) NOT NULL
);
一些注意事项:
- 1、数据库中生成的表会加上"app名_"作为前缀,如myapp_persion,也可以重新为别的名称,详见第四节
- 2、会自动添加一个id字段作为主键字段,但也可以重写此行为,详见第3.3小节
- 3、本例中的CREATE TABLE SQL是使用PostgreSQL语法格式化的,但值得注意的是Django使用的SQL是根据设置文件中指定的数据库后端定制的。
二 使用模型
一旦你定义了模型,你就需要告诉djano你将要使用这些模型。如何做到呢? 需要通过编辑配置文件settings.py,在配置项INSTALLED_APPS注册你包含模型文件 models.py所在的app
例如,如果你的app的模型在myapp.models里,INSTALLED_APPS配置如下
INSTALLED_APPS = [
#...
'myapp',
#...
]
然后运行命令
python manage.py makemigrations
python manage.py migrate
Django 提供了基于 web 的管理工具用来管理我们的模型。如何使用呢
- 1、通常我们在生成项目时就会在 urls.py 中自动设置好,如下
urlpatterns = [
path('admin/', admin.site.urls),
]
- 2、启动Django ,管理工具就可以运行了,在浏览器中访问 http://127.0.0.1:8000/admin/,得到如下界面:
![4c7b31abac32a731fbeae3dd960d8cc6.png](https://img-blog.csdnimg.cn/img_convert/4c7b31abac32a731fbeae3dd960d8cc6.png)
- 3、你可以通过命令 python manage.py createsuperuser 来创建超级用户,如下所示:
# python manage.py createsuperuser
Username (leave blank to use 'root'): egon
Email address: admin@runoob.com
Password:
Password (again):
Superuser created successfully.
之后输入用户名密码登录,界面如下:
![fe9b465aa74486d4b890bc6879bb5fe5.png](https://img-blog.csdnimg.cn/img_convert/fe9b465aa74486d4b890bc6879bb5fe5.png)
- 4、为了让 admin 界面管理某个数据模型,我们需要先注册该数据模型到 admin。比如,我们之前在 app01/models.py中已经创建了模型 Person 。修改 app01/admin.py:
from django.contrib import admin
# Register your models here.
from app01.models import Person
admin.site.register(Person)
刷新页面即可看到Person数据表