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

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

(本文目录:)

首先,后台开发离不开数据库。

[En]

First, back-end development is inseparable from the database.

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

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

1.创建数据库

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

Database
https://docs.djangoproject.com/en/2.0/ref/settings/#databases

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

Python Web开发(四):从零开始创建数据库和表
python manage.py migrate

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

2.下载数据库工具sqlite studio

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

二、什么是 ORM

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

  1. 定义一张数据库的表 就是定义一个继承自 django.db.models.Model 的类
  2. 定义该表中的字段(列), 就是定义该类里面的一些属性
  3. 类的方法就是对该表中数据的处理方法,包括 数据的增删改查

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

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

三、定义我们的数据库表

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

[En]

When we develop the system, we need to define the database tables we need.

1.创建common应用目录

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

python manage.py startapp common

Python Web开发(四):从零开始创建数据库和表
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 models
class 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 有很多字段对象类型, 对应不同的类型的数据库字段。

四、创建数据库表

在定义表之后,我们如何真正创建数据库表?

[En]

After defining the table, how do we really create the database table?

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开发(四):从零开始创建数据库和表

2.执行创建命令

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

python manage.py makemigrations common

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

3.重新定义数据库

然后执行下面的命令,这是我们之前的定义数据库的命令:

[En]

Then, execute the following command, which is our previous command of * define database * :

python manage.py migrate

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

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

4.添加空表

Python Web开发(四):从零开始创建数据库和表
python manage.py makemigrations common

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

五、Django管理员设置

1.创建管理员账号

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

d:\projects\bysms>python manage.py createsuperuser
Username (leave blank to use 'byhy'): byhy
Email address: byhy@163.com
Password:
Password (again):
Superuser created successfully.

Python Web开发(四):从零开始创建数据库和表
from django.contrib import admin

from .models import Customer

admin.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 admin
admin.site.register(Customer)

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

5.添加客户

同时我们也可以添加客户:

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

Original: https://blog.51cto.com/u_15492594/5574611
Author: 是Dream呀
Title: Python Web开发(四):从零开始创建数据库和表

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/500801/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球