新聞中心
隨著互聯(lián)網(wǎng)的不斷發(fā)展,各種基于Web的應(yīng)用也越來越成熟,其中最為重要的一個部分就是數(shù)據(jù)庫。數(shù)據(jù)庫,作為互聯(lián)網(wǎng)應(yīng)用的數(shù)據(jù)管理中極為重要的組成部分,其強大的存儲能力能夠有效地幫助開發(fā)者進行數(shù)據(jù)的存儲,管理和獲取。在創(chuàng)建Web應(yīng)用程序時,處理數(shù)據(jù)條目的過程是必不可少的,因此,在開發(fā)過程中,實現(xiàn)數(shù)據(jù)庫的條目新增功能是非常重要的一步。

成都創(chuàng)新互聯(lián)-企業(yè)級云服務(wù)器提供商,為用戶提供云服務(wù)器、CDN、云安全服務(wù)、重慶服務(wù)器托管、服務(wù)器租用、高防服務(wù)器租用等全方位云服務(wù)與各行業(yè)解決方案,幫助企業(yè)及個人極速備案,輕松上云,安全無憂。
在Django這一Web框架中,實現(xiàn)新增功能的方法可以使用Django模型。Django模型是一種用于定義數(shù)據(jù)庫架構(gòu)的Python類,可以將應(yīng)用程序所需的數(shù)據(jù)建立成一個類的形式,這樣就可以在數(shù)據(jù)庫中創(chuàng)建與之對應(yīng)的數(shù)據(jù)表,以此實現(xiàn)對數(shù)據(jù)庫的操作。
由此,本篇文章將詳細講解如何使用,并提供示例代碼和操作步驟。
一、創(chuàng)建Django項目
需要創(chuàng)建一個Django項目,可以在終端使用如下指令進行創(chuàng)建:
“`
$ django-admin startproject projectname
“`
其中,projectname為你所要創(chuàng)建的項目的名稱。
接著,切換到項目目錄下,使用如下命令啟動服務(wù):
“`
$ python manage.py runserver
“`
在瀏覽器中打開http://127.0.0.1:8000/,如果出現(xiàn)“Welcome to Django”內(nèi)容,則表示你的Django項目已經(jīng)創(chuàng)建成功。
二、創(chuàng)建Django應(yīng)用程序
在創(chuàng)建Django項目之后,需要在項目中創(chuàng)建一個或多個應(yīng)用程序來實現(xiàn)相應(yīng)的功能??梢栽陧椖磕夸浵率褂萌缦轮噶顒?chuàng)建一個應(yīng)用程序:
“`
$ python manage.py startapp appname
“`
其中,appname為你所要創(chuàng)建的應(yīng)用程序名稱。
三、創(chuàng)建Django模型
在創(chuàng)建完應(yīng)用程序后,需要在該應(yīng)用程序的models.py文件中定義模型。模型定義了數(shù)據(jù)表的結(jié)構(gòu)和約束條件,同時也會創(chuàng)建與之對應(yīng)的數(shù)據(jù)表。
例如,我們要創(chuàng)建一個名為“Book”的模型類,用于實現(xiàn)對數(shù)據(jù)庫中“Book”數(shù)據(jù)表的管理,那么在應(yīng)用程序的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
“`
上述模型類創(chuàng)建了一個“Book”的數(shù)據(jù)表,包括三個字段:書名、作者和出版日期。其中,各字段的類型及參數(shù)含義如下:
– CharField:字符串類型,需要設(shè)置更大長度;
– DateTimeField:時間類型。
四、遷移數(shù)據(jù)庫
在Django中創(chuàng)建模型后,需要執(zhí)行數(shù)據(jù)庫遷移操作,以創(chuàng)建相應(yīng)的數(shù)據(jù)表。在終端中執(zhí)行如下指令即可實現(xiàn)遷移:
“`
$ python manage.py makemigrations appname
$ python manage.py migrate
“`
其中,appname為你所創(chuàng)建的應(yīng)用程序名稱。
執(zhí)行完上述指令后,就成功在數(shù)據(jù)庫中創(chuàng)建了一個新的數(shù)據(jù)表。在這個例子中,就創(chuàng)建了一個名為”Book”的數(shù)據(jù)表。
五、新增條目記錄
在數(shù)據(jù)庫中增加新的記錄需要從該模型類創(chuàng)建一個新的實例,并在實例中設(shè)置相應(yīng)的屬性。以“Book”模型類為例,可以在Python shell中通過如下指令完成新增條目記錄的功能:
“`
$ python manage.py shell
>>> from myapp.models import Book
>>> from django.utils import timezone
>>> b = Book(title=’Django入門實戰(zhàn)’, author=’李明’, pub_date=timezone.now())
>>> b.save()
“`
在上述代碼中,我們首先導(dǎo)入了模型類,并使用timezone模塊獲取當(dāng)前時間,然后創(chuàng)建了一個Book對象并設(shè)置其各個屬性,最后通過save()方法將該對象保存至數(shù)據(jù)庫中。
在Django框架中,還可以使用以下代碼實現(xiàn)數(shù)據(jù)條目的新增:
“`
from myapp.models import Book
from django.utils import timezone
Book.objects.create(title=’Django入門實戰(zhàn)’, author=’李明’, pub_date=timezone.now())
“`
通過上述代碼,我們就可以 successfully 將一條新的記錄插入到該數(shù)據(jù)表中。
六、
至此,我們就學(xué)習(xí)了如何使用,并且已經(jīng)成功將一條新的記錄插入到數(shù)據(jù)表中。
盡管Django集成了強大的ORM功能,但是在實際應(yīng)用中,還需要結(jié)合自己的實際情況進行開發(fā)。這也需要我們不斷的學(xué)習(xí)和實踐,提高我們的技能和能力。
相關(guān)問題拓展閱讀:
- django orm創(chuàng)建數(shù)據(jù)表
django orm創(chuàng)建數(shù)據(jù)表
Django里面,管理數(shù)據(jù)庫和sqlarchemy類似,也是通過orm框架來實現(xiàn)的。所有的數(shù)據(jù)庫的建立,都是在model.py里面通過類來實現(xiàn)的。
首先看看如何創(chuàng)建一個單表:
a. 先定義一個類,繼承models.Model, 然后根據(jù)需求定義參數(shù),這些參數(shù)的類型和變量后面會進一步闡念世述
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‘,
‘a(chǎn)pp01‘,
>
c.執(zhí)行命令。 之一條命令會生成一個初始化文件,第二個命令會生成對應(yīng)的表
python manage.py makemigrations
python manage.py migrate
這樣,就在PyCharm自帶的sqlite數(shù)據(jù)庫里面成功的生成了一個app01_UserInfo的表。這個表默認會有一個自增的id作為主鍵,另外兩個字段是我們通過類創(chuàng)建的。
d. 如果希望使用mysql,因為Django默認使用了MySqldb模塊,這個在3.0版本里面不存在,會直接報錯。我們需要此指改為pymysql的模塊,方法如下:
在project同名文件夾下的__init__文件中添加如下代碼即可:
import pymysql
pymysql.install_as_MySQLdb()
2. 對于單表的增刪改查詢
查詢
獲取所有結(jié)果,獲取到的結(jié)果是一個QuerySet的類似列表的對象仔扒肢,每一個元素本身又是一個對象,包括了id,name,password等屬性。
obj = models.UserInfo.objects.all()
, , , , >>
可以通過filter進行過濾,相當(dāng)于sql的where語句,因為結(jié)果也是QuerySet,因此需要再使用first()獲取之一個值
obj = models.UserInfo.objects.filter(id=nid).first()
增加
models.UserInfo.objects.create(username=u,password=p,user_group_id=3)
刪除,可以在filter的基礎(chǔ)上進行刪除
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模型新增數(shù)據(jù)庫的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于django模型新增數(shù)據(jù)庫,Django模型實現(xiàn)數(shù)據(jù)庫條目新增功能,django orm創(chuàng)建數(shù)據(jù)表的信息別忘了在本站進行查找喔。
成都創(chuàng)新互聯(lián)科技有限公司,是一家專注于互聯(lián)網(wǎng)、IDC服務(wù)、應(yīng)用軟件開發(fā)、網(wǎng)站建設(shè)推廣的公司,為客戶提供互聯(lián)網(wǎng)基礎(chǔ)服務(wù)!
創(chuàng)新互聯(lián)(www.cdcxhl.com)提供簡單好用,價格厚道的香港/美國云服務(wù)器和獨立服務(wù)器。創(chuàng)新互聯(lián)成都老牌IDC服務(wù)商,專注四川成都IDC機房服務(wù)器托管/機柜租用。為您精選優(yōu)質(zhì)idc數(shù)據(jù)中心機房租用、服務(wù)器托管、機柜租賃、大帶寬租用,可選線路電信、移動、聯(lián)通等。
文章題目:Django模型實現(xiàn)數(shù)據(jù)庫條目新增功能(django模型新增數(shù)據(jù)庫)
URL地址:http://www.5511xx.com/article/cocidjc.html


咨詢
建站咨詢
