> 文档中心 > Python Web开发(四):创建数据库和表

Python Web开发(四):创建数据库和表

在这里插入图片描述

本文目录:

  • 一、后端开发离不开数据库
    • 1.创建数据库
    • 2.下载数据库工具sqlite studio
  • 二、什么是 ORM
  • 三、定义我们的数据库表
    • 1.创建common应用目录
    • 2.修改业务表
  • 四、创建数据库表
    • 1.配置内容
    • 2.执行创建命令
    • 3.重新定义数据库
    • 4.添加空表
  • 五、Django管理员设置
    • 1.创建管理员账号
    • 2.访问登录网站
    • 3.添加用户
    • 4.添加功能
    • 5.添加客户
  • `【系列好文推荐】`

前言: 📢📢📢
🏅🏅🏅作者简介:是Dream呀,华为云享专家、CSDN原力计划作者、Python领域优质创作者,专注分享Python领域原创系列文章。
🌻🌻🌻热门专栏:【零基础学Python
本课程是针对Python入门&进阶打造的一全套课程,在这里,我将会一 一更新Python基础语法、Python爬虫、Web开发、 Django框架、Flask框架以及人工智能相关知识,帮助你成为Python大神,如果你喜欢的话就抓紧收藏订阅起来吧~💘💘💘
🍋🍋🍋如果对学习没有自制力或者没有一起学习交流的动力,欢迎私信我或者文末添加vx,拉你进群,群内有行业大佬帮大家解答疑问,我们一起学习,群内定期还会有抽奖活动和红包相送嗷,快来进入我们吧~
💕 入门须知:这片乐园从不缺乏天才,努力才是你的最终入场券!🚀🚀🚀
💓最后,愿我们都能在看不到的地方闪闪发光,一起加油进步🍺🍺🍺
在这里插入图片描述

一、后端开发离不开数据库

真实的系统 就应该返回真实的 订单信息。 那么服务端从哪里获取真实的订单信息呢? 像 订单信息 这些数据通常就是保存在数据库里面的。

后端开发基本都需要操作数据,包括数据的 存储、查询、修改、删除。
通常,这些都是通过数据库来完成的。目前业界最广泛使用的数据库还是:关系型数据库。
关系型数据库系统,常用的开源数据库有 mysqlpostgresql。建议大家实际工作中使用的时候,使用上面这两种。
但是上面这些数据库,都需要我们安装数据库服务系统 和 客户端库,比较麻烦,现在我们先使用另一种更简单的 数据库 sqlite。sqlite 没有 独立的数据库服务进程,数据操作被做成库直接供应用程序调用。 Django中可以直接使用,无须先搭建数据服务。
后面我们要使用mysql 等其他数据库 只需修改一些配置就可以了。
我们可以看到setting文件中,我们就是使用的splite数据库:
Python Web开发(四):创建数据库和表

1.创建数据库

项目中数据库的配置在 bysms/settings.py 中,这里:

# Database# https://docs.djangoproject.com/en/2.0/ref/settings/#databasesDATABASES = {    'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),    }}

大家可以发现,我们使用命令创建的项目, 缺省就是使用 sqlite。 而且对于的数据库文件,缺省的文件名是 db.sqlite3 , 就在项目的根目录下面:
Python Web开发(四):创建数据库和表
虽然,我们已经存在这个文件啦,但是其中并没有写入一些表格之类的数据,所以说我们还需要执行命令,创建其中的数据。
首先我们需要创建数据库,执行如下命令:

python manage.py migrate

就会在 项目的根目录下面 生成一个配置文件中指定的数据库文件 db.sqlite3。并且 会在其中创建一些表。
Python Web开发(四):创建数据库和表

2.下载数据库工具sqlite studio

要知道里面是什么样子的文件,我们需要下载sqlite 数据库工具:sqlitestudio(点击蓝色字体进入链接)
Python Web开发(四):创建数据库和表
下载后解压即可, 运行该工具, 然后打开上面的 文件 db.sqlite3
将我们的数据库文件添加到sqlitestudio中,打开。
Python Web开发(四):创建数据库和表
Python Web开发(四):创建数据库和表
Python Web开发(四):创建数据库和表
这些表都是 Django缺省设置中, 需要的一些 基本表。
包括: 用户表 auth_user, 登录会话表 django_session 等等。
Python Web开发(四):创建数据库和表

二、什么是 ORM

Django 里面, 数据库表的操作,包括 表的定义、表中数据的增删改查,都可以通过 Model 类型的对象进行的。
通常,在Django中:

  1. 定义一张数据库的表 就是定义一个继承自 django.db.models.Model 的类

  2. 定义该表中的字段(列), 就是定义该类里面的一些属性

  3. 类的方法就是对该表中数据的处理方法,包括 数据的增删改查

这样,开发者对数据库的访问,从原来的使用底层的 sql 语句,变成 面向对象的开发,通过一系列对象的类定义 和方法调用就可以 操作数据库。

这样做:
首先 极大的简化了我们应用中的数据库开发,因为无需使用sql语句操作数据库了, 提高了开发的效率;
其次 屏蔽了 不同的数据库访问的底层细节,基本做到了 开发好代码后,如果要换数据库,几乎不需要改代码, 修改几个配置项就可以了。
这种 通过 对象 操作数据库 的方法 被称之为 ORM (object relational mapping),下面我们就来看怎样使用。

三、定义我们的数据库表

我们开发系统,需要定义我们需要的数据库表。

1.创建common应用目录

首先,我们再创建一个名为common的应用目录, 里面存放我们项目需要的一些公共的表的定义。
进入项目根目录,执行下面的命令。

python manage.py startapp common 

Python Web开发(四):创建数据库和表
Python Web开发(四):创建数据库和表
就会创建一个目录名为 common, 对应 一个名为 common 的app,里面包含了如下自动生成的文件。

common/    __init__.py    admin.py    apps.py    migrations/ __init__.py    models.py    tests.py    views.py

Django是通过定义类来定义数据库表的。所以,我们要定义数据库的表,无需执行sql语句,只需要在app目录下面 定义特殊的类就可以了。数据库表的定义,一般是放在app目录中的 models.py里面的。

2.修改业务表

打开 common/models.py,发现里面是空的,因为我们还没有定义我们的业务所需要的表。
我们修改它,加入如下内容:

from django.db import modelsclass Customer(models.Model):    # 客户名称    name = models.CharField(max_length=200)    # 联系电话    phonenumber = models.CharField(max_length=200)    # 地址    address = models.CharField(max_length=200)

Python Web开发(四):创建数据库和表

这个 Customer 类继承自 django.db.models.Model, 就是用来定义数据库表的。
里面的 name、phonenumber、address 是该表的3个字段。
定义表中的字段 就是定义一些静态属性,这些属性是 django.db.models 里面的各种 Field 对象,对应不同类型的字段。
比如这里的3个字段 都是 CharField 对象,对应 varchar类型的数据库字段。
后面的参数 max_length 指明了该 varchar字段的 最大长度。
Djanog 有很多字段对象类型, 对应不同的类型的数据库字段。

四、创建数据库表

定义好表以后,我们怎么真正去创建数据库表呢?

1.配置内容

首先我们需要告诉Django: 我们的 common 应用中 需要你关注, 因为其中包含了 数据库Model的定义。
在项目的配置文件 settings.py 中, INSTALLED_APPS 配置项 加入如下内容:

INSTALLED_APPS = [    'django.contrib.admin',    'django.contrib.auth',    'django.contrib.contenttypes',    'django.contrib.sessions',    'django.contrib.messages',    'django.contrib.staticfiles',    # 加入下面这行    'common.apps.CommonConfig',]

‘common.apps.CommonConfig’ 告诉 Django , CommonConfig 是 common/apps.py 文件中定义的一个应用配置的类。
是这样的

class CommonConfig(AppConfig):    name = 'common'

Python Web开发(四):创建数据库和表
CommonConfig 是 AppConfig的 子类, 就表示这个是应用的配置类。
这里 name = ‘common’ , name 是用来定义 应用的python模块路径的。 这里就是说 应用 模块路径为 common 。

2.执行创建命令

Django知道了我们的 common 应用, 我们可以在项目根目录下执行命令:

python manage.py makemigrations common

得到如下结果:
Python Web开发(四):创建数据库和表
这个命令,告诉Django , 去看看common这个app里面的models.py ,我们已经修改了数据定义, 你现在去产生相应的更新脚本。
执行一下,会发现在 common\migrations 目录下面出现了0001_initial.py, 这个脚本就是相应要进行的数据库操作代码。
Python Web开发(四):创建数据库和表

3.重新定义数据库

随即,执行如下命令,也就是我们之前定义数据库的命令:

python manage.py migrate

Python Web开发(四):创建数据库和表
就真正去数据库创建表了。
用 sqlitestudio 查看数据库,发现创建了一张名为 common_customer的表,如下:
Python Web开发(四):创建数据库和表

其中 3 个字段就是我们上面定义的 Customer 类里面的 name、phonenumber、address 属性名。多出来的 id 字段是该表的主键, 是Django自动帮我们添加的。

4.添加空表

在model里面再加入qq,使其为空表:
Python Web开发(四):创建数据库和表
重新执行创建命令:

python manage.py makemigrations common

Python Web开发(四):创建数据库和表
Python Web开发(四):创建数据库和表
最后在执行migrate
Python Web开发(四):创建数据库和表
得到我么的qq新表:
Python Web开发(四):创建数据库和表

五、Django管理员设置

1.创建管理员账号

Django提供了一个管理员操作界面可以方便的 添加、修改、删除你定义的 model 表数据。
首先,我们需要创建 一个超级管理员账号。进入到项目的根目录,执行如下命令,依次输入你要创建的管理员的 登录名、email、密码。

d:\projects\bysms>python manage.py createsuperuserUsername (leave blank to use 'byhy'): byhyEmail address: byhy@163.comPassword:Password (again):Superuser created successfully.

Python Web开发(四):创建数据库和表
创建后进入我们的数据库工具,打开user,会发现我们刚才输入的账号和密码,在这里密码是进行加密的:
Python Web开发(四):创建数据库和表
然后我们需要修改应用里面的 管理员 配置文件 common/admin.py,注册我们定义的model类。这样Django才会知道。

from django.contrib import adminfrom .models import Customeradmin.site.register(Customer)

然后需要重新启动一下服务器,这个地方大家如果不太懂的话可以看本专栏的第二节课 :Python Web开发二:Django的安装和运行
Python Web开发(四):创建数据库和表

2.访问登录网站

好了,现在就可以访问 http://127.0.0.1:8080/admin/ ,输入刚才注册的用户密码登录。
Python Web开发(四):创建数据库和表

登录后可以看到如下界面。这里面是目前系统中可以修改的表。
Python Web开发(四):创建数据库和表

3.添加用户

然后我们可以点击添加user,去添加新的用户:
Python Web开发(四):创建数据库和表
此时打开数据库,我们就会发现,又给我们增添了一条用户信息:
Python Web开发(四):创建数据库和表

4.添加功能

我们看到我们的界面中,现在只有两个功能,没有customer,
Python Web开发(四):创建数据库和表
如果想要添加的话,需要将代码加入到models文件中:

from django.contrib import adminadmin.site.register(Customer)

Python Web开发(四):创建数据库和表
此时,如果服务器终止了,我们需要重启服务器,然后刷新界面,就会得到我们下面的新的功能:Python Web开发(四):创建数据库和表

5.添加客户

同时我们也可以添加客户:
Python Web开发(四):创建数据库和表
此时在我们的数据库中,我们就可以看到我们新添加的客户信息:
Python Web开发(四):创建数据库和表
可以说是非常的方便,如果你也是一步一步做下来的话,真的会非常有成就感嗷~

【系列好文推荐】

🎯🎯🎯
Python Web开发一:Web开发简介
Python Web开发二:Django的安装和运行
Python Web开发(三):HTTP请求的url路由

欢迎订阅本专栏:零基础学Python 系列课程是针对Python入门&进阶打造的一全套课程,在这里,我将会一 一更新Python基础语法、Python爬虫、Web开发、 Django框架、Flask框架以及人工智能相关知识,帮助你成为Python大神,如果你喜欢的话就抓紧收藏订阅起来吧~💘💘💘
💕💕💕 好啦,这就是今天要分享给大家的全部内容了,我们下期再见!✨ ✨ ✨
🍻🍻🍻如果你喜欢的话,就不要吝惜你的一键三连了~
在这里插入图片描述
在这里插入图片描述
⬇️⬇️ ⬇️ 商务合作|交流学习|粉丝福利|Python全套资料⬇️ ⬇️ ⬇️ 欢迎联系~