【003】- Django模型/数据库配置/站点管理简介

接上一篇内容,在这篇中我们将介绍Django中数据库的配置,模型以及站点管理。
在Django中内嵌了ORM框架,我们不需要直接面向数据库编程,而是定义模型类,通过模型类和对象完成数据表的增删改查操作。
使用django进行数据库开发的步骤如下:
1.在models.py中定义模型类
2.迁移
3.通过类和对象完成数据增删改查操作

模型创建

在beardata_sys/models.py中定义User模型类,本例中只是示意定义了几种数据类型,后续会详细介绍数据库字段类型。

from django.db import models


class User(models.Model):
    """ 用户模型类 """
    # 用户名
    username = models.CharField(max_length=50)
    # 密码
    password = models.CharField(max_length=100)
    # 年龄
    age = models.IntegerField()
    # 创建时间
    create_time = models.DateTimeField('date published')

在配置文件beardata/settings.py中配置应用

INSTALLED_APPS = [
    'beardata_sys.apps.BeardataSysConfig',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

生成迁移文件

python manage.py makemigrations beardata_sys

【003】- Django模型/数据库配置/站点管理简介_第1张图片
执行完迁移命令之后,目录结构如下,会在beardata_sys/migrations包下是生成迁移文件
【003】- Django模型/数据库配置/站点管理简介_第2张图片
迁移文件转换为SQL脚本

python manage.py sqlmigrate 应用模块名 文件编号
如 python manage.py sqlmigrate beardata_sys 0001

执行结果如下所示
在这里插入图片描述
执行迁移

python manage.py migrate

【003】- Django模型/数据库配置/站点管理简介_第3张图片

Django默认的数据库为sqlite,在项目的根目录下会有一个db.sqlite3的文件,我们通过工具打开查看,数据库表已生成。
【003】- Django模型/数据库配置/站点管理简介_第4张图片

数据库配置

我们已经在上述步骤中执行了迁移并生成了库表结构,接下来我们通过Django提供的shell功能进行简单的数据库API操作。
进入项目的shell

python manage.py shell

【003】- Django模型/数据库配置/站点管理简介_第5张图片
首先引入User类

from beardata_sys.models import User

查询表中数据

User.objects.all()

在这里插入图片描述
新建用户对象
在这里插入图片描述
修改用户对象
【003】- Django模型/数据库配置/站点管理简介_第6张图片

站点管理

Django默认为我们提供了后台管理的功能。

1.管理界面本地化

修改settings.py文件

LANGUAGE_CODE = 'zh-hans'

TIME_ZONE = 'Asia/Shanghai'
2.创建管理员
python manage.py createsuperuser

注:输入用户名,邮箱,密码,其中密码至少8位字符串
【003】- Django模型/数据库配置/站点管理简介_第7张图片
启动服务,并访问 http://127.0.0.1:8000/admin
【003】- Django模型/数据库配置/站点管理简介_第8张图片
登录成功后出现如下界面
【003】- Django模型/数据库配置/站点管理简介_第9张图片

3.注册模型类

登录后台管理后,默认没有我们创建的应用中定义的模型类,需要在自己应用中的admin.py文件中注册,才可以在后台管理中看到,并进行增删改查操作。
打开beardata_sys/admin.py文件,编写如下代码:

from django.contrib import admin

from .models import User

admin.site.register(User)

刷新浏览器
【003】- Django模型/数据库配置/站点管理简介_第10张图片
点击类名称"User"可以进入列表页,默认只有一列。
【003】- Django模型/数据库配置/站点管理简介_第11张图片
在列表页中点击"增加"可以进入增加页,Django会根据模型类的不同,生成不同的表单控件,按提示填写表单内容后点击"保存",完成数据创建,创建成功后返回列表页。
【003】- Django模型/数据库配置/站点管理简介_第12张图片
在列表页中点击某行的第一列可以进入修改页。
【003】- Django模型/数据库配置/站点管理简介_第13张图片
按照提示进行内容的修改,修改成功后进入列表页。在修改页点击“删除”可以删除一项。
也可以在列表页勾选想要删除的复选框,可以删除多项。
【003】- Django模型/数据库配置/站点管理简介_第14张图片

4.自定义管理界面

在列表页只显示出了User object,对象的其它属性并没有列出来,查看非常不方便。 Django提供了自定义管理页面的功能,比如列表页要显示哪些值。

打开beardata_sys/admin.py文件,自定义类,继承自admin.ModelAdmin类。
属性list_display表示要显示哪些属性

class UserAdmin(admin.ModelAdmin):
    list_display = ['id', 'username', 'age', 'create_time']

修改模型类User的注册代码如下

admin.site.register(User, UserAdmin)

刷新User的列表页,所有属性都显示出来了。
【003】- Django模型/数据库配置/站点管理简介_第15张图片
最终beardata_sys/admin.py文件代码如下

from django.contrib import admin

from .models import User


class UserAdmin(admin.ModelAdmin):
    list_display = ['id', 'username', 'age', 'create_time']


admin.site.register(User, UserAdmin)

你可能感兴趣的:(Python)