随着互联网的不断发展,各种基于Web的应用也越来越成熟,其中最为重要的一个部分就是数据库。数据库,作为互联网应用的数据管理中极为重要的组成部分,其强大的存储能力能够有效地帮助开发者进行数据的存储,管理和获取。在创建Web应用程序时,处理数据条目的过程是必不可少的,因此,在开发过程中,实现数据库的条目新增功能是非常重要的一步。
成都创新互联-企业级云服务器提供商,为用户提供云服务器、CDN、云安全服务、重庆服务器托管、服务器租用、高防服务器租用等全方位云服务与各行业解决方案,帮助企业及个人极速备案,轻松上云,安全无忧。
在Django这一Web框架中,实现新增功能的方法可以使用Django模型。Django模型是一种用于定义数据库架构的Python类,可以将应用程序所需的数据建立成一个类的形式,这样就可以在数据库中创建与之对应的数据表,以此实现对数据库的操作。
由此,本篇文章将详细讲解如何使用,并提供示例代码和操作步骤。
一、创建Django项目
需要创建一个Django项目,可以在终端使用如下指令进行创建:
“`
$ django-admin startproject projectname
“`
其中,projectname为你所要创建的项目的名称。
接着,切换到项目目录下,使用如下命令启动服务:
“`
$ python manage.py runserver
“`
在浏览器中打开http://127.0.0.1:8000/,如果出现“Welcome to Django”内容,则表示你的Django项目已经创建成功。
二、创建Django应用程序
在创建Django项目之后,需要在项目中创建一个或多个应用程序来实现相应的功能。可以在项目目录下使用如下指令创建一个应用程序:
“`
$ python manage.py startapp appname
“`
其中,appname为你所要创建的应用程序名称。
三、创建Django模型
在创建完应用程序后,需要在该应用程序的models.py文件中定义模型。模型定义了数据表的结构和约束条件,同时也会创建与之对应的数据表。
例如,我们要创建一个名为“Book”的模型类,用于实现对数据库中“Book”数据表的管理,那么在应用程序的models.py文件中,可以如下定义模型类:
“`
from django.db import models
class Book(models.Model):
title = models.CharField(max_length=100)
author = models.CharField(max_length=100)
pub_date = models.DateTimeField()
def __str__(self):
return self.title
“`
上述模型类创建了一个“Book”的数据表,包括三个字段:书名、作者和出版日期。其中,各字段的类型及参数含义如下:
– CharField:字符串类型,需要设置更大长度;
– DateTimeField:时间类型。
四、迁移数据库
在Django中创建模型后,需要执行数据库迁移操作,以创建相应的数据表。在终端中执行如下指令即可实现迁移:
“`
$ python manage.py makemigrations appname
$ python manage.py migrate
“`
其中,appname为你所创建的应用程序名称。
执行完上述指令后,就成功在数据库中创建了一个新的数据表。在这个例子中,就创建了一个名为”Book”的数据表。
五、新增条目记录
在数据库中增加新的记录需要从该模型类创建一个新的实例,并在实例中设置相应的属性。以“Book”模型类为例,可以在Python shell中通过如下指令完成新增条目记录的功能:
“`
$ python manage.py shell
>>> from myapp.models import Book
>>> from django.utils import timezone
>>> b = Book(title=’Django入门实战’, author=’李明’, pub_date=timezone.now())
>>> b.save()
“`
在上述代码中,我们首先导入了模型类,并使用timezone模块获取当前时间,然后创建了一个Book对象并设置其各个属性,最后通过save()方法将该对象保存至数据库中。
在Django框架中,还可以使用以下代码实现数据条目的新增:
“`
from myapp.models import Book
from django.utils import timezone
Book.objects.create(title=’Django入门实战’, author=’李明’, pub_date=timezone.now())
“`
通过上述代码,我们就可以 successfully 将一条新的记录插入到该数据表中。
六、
至此,我们就学习了如何使用,并且已经成功将一条新的记录插入到数据表中。
尽管Django集成了强大的ORM功能,但是在实际应用中,还需要结合自己的实际情况进行开发。这也需要我们不断的学习和实践,提高我们的技能和能力。
相关问题拓展阅读:
Django里面,管理数据库和sqlarchemy类似,也是通过orm框架来实现的。所有的数据库的建立,都是在model.py里面通过类来实现的。
首先看看如何创建一个单表:
a. 先定义一个类,继承models.Model, 然后根据需求定义参数,这些参数的类型和变量后面会进一步阐念世述
models.py
from django.db import models
class UserInfo(models.Model):
username = models.CharField(max_length=32)
password = models.CharField(max_length=64)
b. 注册app
settings.py
INSTALLED_APPS =
‘django.contrib.admin‘,
‘django.contrib.auth‘,
‘django.contrib.contenttypes‘,
‘django.contrib.sessions‘,
‘django.contrib.messages‘,
‘django.contrib.staticfiles‘,
‘app01‘,
>
c.执行命令。 之一条命令会生成一个初始化文件,第二个命令会生成对应的表
python manage.py makemigrations
python manage.py migrate
这样,就在PyCharm自带的sqlite数据库里面成功的生成了一个app01_UserInfo的表。这个表默认会有一个自增的id作为主键,另外两个字段是我们通过类创建的。
d. 如果希望使用mysql,因为Django默认使用了MySqldb模块,这个在3.0版本里面不存在,会直接报错。我们需要此指改为pymysql的模块,方法如下:
在project同名文件夹下的__init__文件中添加如下代码即可:
import pymysql
pymysql.install_as_MySQLdb()
2. 对于单表的增删改查询
查询
获取所有结果,获取到的结果是一个QuerySet的类似列表的对象仔扒肢,每一个元素本身又是一个对象,包括了id,name,password等属性。
obj = models.UserInfo.objects.all()
, , , , >>
可以通过filter进行过滤,相当于sql的where语句,因为结果也是QuerySet,因此需要再使用first()获取之一个值
obj = models.UserInfo.objects.filter(id=nid).first()
增加
models.UserInfo.objects.create(username=u,password=p,user_group_id=3)
删除,可以在filter的基础上进行删除
models.UserInfo.objects.filter(id=nid).delete()
修改,有两种常见方式
之一个方式
models.UserInfo.objects.filter(id=nid).update(username=u,password=p)
第二个方式
obj=models.UserInfo.objects.filter(id=nid)
obj.username=u
obj.save()
django模型新增数据库的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于django模型新增数据库,Django模型实现数据库条目新增功能,django orm创建数据表的信息别忘了在本站进行查找喔。
成都创新互联科技有限公司,是一家专注于互联网、IDC服务、应用软件开发、网站建设推广的公司,为客户提供互联网基础服务!
创新互联(www.cdcxhl.com)提供简单好用,价格厚道的香港/美国云服务器和独立服务器。创新互联成都老牌IDC服务商,专注四川成都IDC机房服务器托管/机柜租用。为您精选优质idc数据中心机房租用、服务器托管、机柜租赁、大带宽租用,可选线路电信、移动、联通等。
标题名称:Django模型实现数据库条目新增功能(django模型新增数据库)
转载源于:http://www.gawzjz.com/qtweb2/news24/24224.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联