python的web库,python在数据库中建表
Yyds干货库存
@TOC
第一,后端开发离不开数据库。
真实的系统应该返回真实的订单信息。那么服务器从哪里获得真正的订单信息呢?订单信息等数据通常存储在数据库中。
后端开发基本需要对数据进行操作,包括数据存储、查询、修改和删除。
通常,这些都是通过数据库完成的。目前业界应用最广泛的数据库是关系数据库。
关系数据库系统,常用的开源数据库有mysql和postgresql。建议您在实际工作中使用以上两种方法。
但是以上数据库都需要我们安装数据库服务系统和客户端库,比较麻烦。现在,让我们首先使用另一个更简单的数据库sqlite。Sqlite没有独立的数据库服务进程,数据操作做成库,供应用程序直接调用。可以直接在Django中使用,无需先设置数据服务。
以后会使用mysql等其他数据库,只需要修改一些配置。
我们可以看到,在设置文件中,我们使用的是splite数据库:
1.创建数据库
中项目数据库的配置位于bysms/settings.py中,此处为:
#数据库
# https://docs.djangoproject.com/en/2.0/ref/settings/#databases
数据库={
默认:{
引擎: django.db.backends.sqlite3 ,
NAME: os.path.join(BASE_DIR, db.sqlite3 ),
}
如您所见,默认情况下,我们使用sqlite通过命令创建项目。对于数据库文件,默认文件名是db.sqlite3,就在项目的根目录下:
虽然我们已经有了这个文件,但是其中没有写入数据,比如表,所以我们仍然需要执行命令来创建其中的数据。
首先,我们需要创建数据库并执行以下命令:
python manage.py迁移
配置文件中指定的数据库文件db.sqlite3将在项目的根目录下生成。并且将在其中创建一些表。
2.下载数据库工具sqlite studio
要知道里面是什么样的文件,我们需要下载sqlite数据库工具:sqlitestudio(点击蓝色字体进入链接)
下载并解压后,运行工具,然后打开上面的文件db.sqlite3
将我们的数据库文件添加到sqlitestudio并打开它。
这些表格是Django默认设置中需要的一些基本表格。
包括用户表auth_user、登录会话表django_session等。
二、什么是ORM?
在Django中,数据库表的操作,包括表的定义、表中数据的添加、删除和修改,都可以通过type Model的对象来进行。
一般来说,在Django:
这样,开发者对数据库的访问就从使用底层的sql语句变成了面向对象的开发,可以通过一系列的对象类定义和方法调用来操作数据库。
执行以下操作:
首先,它大大简化了我们应用中的数据库开发,因为不需要使用sql语句来操作数据库,提高了开发效率;
其次,屏蔽了不同数据库访问的底层细节,基本上在代码开发完成后,如果要更改数据库,几乎不需要更改代码,只需修改几个配置项即可。
这种通过对象操作数据库的方法被称为ORM(对象关系映射)。让我们看看如何使用它。
第三,定义我们的数据库表。
为了开发这个系统,我们需要定义我们需要的数据库表。
1.创建通用应用程序目录
首先,我们创建一个名为common的应用程序目录,其中存储了我们的项目所需的一些常用表的定义。
输入项目根目录并执行以下命令。
python manage.py startapp common
将创建一个名为common的目录,对应于一个名为common的应用程序,它包含以下自动生成的文件。
普通/
__init__。巴拉圭
管理. py
apps.py
迁移/
__init__。巴拉圭
models.py
测试. py
views.py
Django通过定义类来定义数据库表。所以我们需要在不执行sql语句的情况下定义数据库的表,只需要在app目录下定义特殊的类。数据库的定义通常放在app目录下的models.py中。
2.修改业务表
打开common/models.py,发现它是空的,因为我们还没有定义业务需要的表。
我们对其进行了修改,添加了以下内容:
从django.db导入模型
类别客户(型号。型号):
#客户名称
名称=型号。CharField(max_length=200)
#联系电话
电话号码=型号。CharField(max_length=200)
#地址
地址=型号。CharField(max_length=200)
这个Customer类继承自django.db.models.Model,用于定义数据库表。
姓名、电话号码和地址是表格的三个字段。
定义表中的字段意味着定义一些静态属性。这些属性是django.db.models中的各种字段对象,对应不同类型的字段。
比如这里的三个字段都是CharField对象,对应varchar类型的数据库字段。
下面的参数max_length表示这个varchar字段的最大长度。
Djanog有很多字段对象类型,对应不同类型的数据库字段。
四。创建数据库表
定义了表之后,如何才能真正创建数据库表呢?
1.配置内容
首先,我们需要告诉Django,我们常用的应用程序需要您的关注,因为它包含了数据库模型的定义。
在项目的配置文件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 common config是在common/apps.py文件中为应用程序配置定义的类。
那是真的
类CommonConfig(AppConfig):
name=common
CommonConfig是AppConfig的子类,这意味着这是应用程序的配置类。
在这里,name= common 。Name用于定义应用程序的python模块路径。这意味着应用程序模块路径是通用的。
2.执行创建命令。
Django知道我们的通用应用程序,我们可以在项目的根目录中执行命令:
python manage.py使迁移变得常见
结果如下:
这个命令,告诉Django,去看看这个常用的app里的models.py。我们已经修改了数据定义,现在您可以开始生成相应的更新脚本了。
执行后,您会发现0001_initial.py出现在common\migrations目录下。这个脚本就是要执行的相应的数据库操作代码。
3.重新定义数据库
然后,执行以下命令,这是我们之前定义数据库的命令:
python manage.py迁移
我真的去数据库创建表格了。
使用sqlitestudio查看数据库,我们发现创建了名为common_customer的表,如下所示:
这三个字段是上面定义的客户类中的名称、电话号码和地址属性名称。额外的id字段是表的主键,Django自动为我们添加的。
4.添加一个空表格
将qq添加到模型中,使其成为一个空表:
重新执行创建命令:
python manage.py使迁移变得常见
最后,执行迁移:
获取我们新的qq桌子:
动词(verb的缩写)Django管理员设置
1.创建管理员帐户
Django提供了一个管理员界面,可以方便地添加、修改和删除您定义的模型表数据。
首先,我们需要创建一个超级管理员帐户。输入项目的根目录,执行以下命令,然后输入想要创建的管理员的登录名、电子邮件和密码。
d:\ projects \ by SMS python manage . py创建超级用户
用户名(留空以使用‘byhy’):byhy
电子邮件地址:byhy@163.com
密码:
密码(再次):
超级用户创建成功。
创建后,进入我们的数据库工具,打开用户,你会发现我们刚刚输入的账号和密码,密码是加密的:
然后我们需要修改应用程序中的管理员配置文件common/admin.py,并注册我们定义的模型类。所以姜戈会知道。
来自django.contrib导入管理
从。模型导入客户
管理员.网站.注册(客户)
然后你需要重启服务器。如果对这个地方不太了解,可以看看本专栏的第二课:Python Web开发二:Django的安装和运行。
2.访问登录网站
好了,现在你可以访问http://127.0.0.1:8080/admin/,输入刚刚注册的用户的密码登录。
登录后,可以看到如下界面。以下是当前系统中可以修改的表格。
3.添加用户
然后,我们可以单击“添加用户”来添加新用户:
当我们打开数据库时,我们会发现又有一条用户信息被添加到我们这里:
4.添加功能
我们看到在我们的界面中,现在只有两个功能,没有客户,
如果您想要添加它,您需要将代码添加到模型文件中:
来自django.contrib导入管理
管理员.网站.注册(客户)
此时,如果服务器被终止,我们需要重启服务器,然后刷新界面,我们会得到以下新功能:
5.添加客户
同时,我们还可以添加客户:
此时,在我们的数据库中,我们可以看到新添加的客户信息:
可以说是非常方便了。一步一步来,真的会很有成就感~
来自博客作者为梦想原创作品。转载请联系作者取得授权,否则将追究法律责任。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。