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

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


咨詢
建站咨詢
