DJango的創(chuàng)建和使用詳解(默認(rèn)數(shù)據(jù)庫sqlite3)
1.安裝虛擬環(huán)境
虛擬環(huán)境是真實(shí)python環(huán)境的復(fù)制版本。
安裝虛擬環(huán)境的命令:
1)sudo pip install virtualenv #安裝虛擬環(huán)境
2)sudo pip install virtualenvwrapper #安裝虛擬環(huán)境擴(kuò)展包
3)編輯家目錄下面的.bashrc文件,添加下面兩行。
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh
4)使用source .bashrc使其生效一下。
創(chuàng)建虛擬環(huán)境命令:
mkvirtualenv 虛擬環(huán)境名
創(chuàng)建python3虛擬環(huán)境:
mkvirtualenv -p python3 bj11_py3
進(jìn)入虛擬環(huán)境工作:
workon 虛擬環(huán)境名
查看機(jī)器上有多少個虛擬環(huán)境:
workon 空格 + 兩個tab鍵
退出虛擬環(huán)境:
deactivate
刪除虛擬環(huán)境:
rmvirtualenv 虛擬環(huán)境名
虛擬環(huán)境下安裝包的命令:
pip install 包名
注意:不能使用sudo pip install 包名,這個命令會把包安裝到真實(shí)的主機(jī)環(huán)境上而不是安裝到虛擬環(huán)境中。
apt-get install 軟件
pip install python包名
安裝django環(huán)境:
pip install django==1.8.2
查看虛擬環(huán)境中安裝了哪些python包:
pip list
pip freeze
2.創(chuàng)建項目
django-admin startproject 項目名稱
注意:創(chuàng)建應(yīng)用必須先進(jìn)入虛擬環(huán)境
__init__.py: 說明test1是一個python包。
settings.py: 項目的配置文件
urls.py: 進(jìn)行url路由的配置
wsgi.py: web服務(wù)器和DJanggo交互的入口
manage.py: 項目的管理文件
3.創(chuàng)建應(yīng)用
一個項目由很多個應(yīng)用組成的,每一個應(yīng)用完成一個特定的功能。
創(chuàng)建應(yīng)用的命令如下:
python manage.py startapp 應(yīng)用名
注 意:創(chuàng)建應(yīng)用時需要先進(jìn)入項目目錄。
應(yīng)用目錄如下:
__init__.py: 說明目錄是一個python模塊
models.py: 用于寫和數(shù)據(jù)庫項目的內(nèi)容
views.py: 接收數(shù)據(jù),處理數(shù)據(jù),與M,T進(jìn)行交互,返回應(yīng)答
定義處理函數(shù),視圖函數(shù) 培養(yǎng)
tests.py: 測試代碼的文件
admin.py: 網(wǎng)站后臺管理相關(guān)的文件
建立應(yīng)用和項目之間的聯(lián)系,需要對應(yīng)用進(jìn)行注冊。
修改settings.py中的INSTALLED_APPS配置項。
運(yùn)行開發(fā)web服務(wù)器命令:
python manage.py runserver
ORM
django中內(nèi)嵌了ORM框架,ORM框架可以將類和數(shù)據(jù)表進(jìn)行對應(yīng)起來,只需要通過類和對象就可以對數(shù)據(jù)表進(jìn)行操作。
設(shè)計類:模型類。
ORM另外一個作用:根據(jù)設(shè)計的類生成數(shù)據(jù)庫中的表。
模型類
模型類設(shè)計
在應(yīng)用models.py中設(shè)計模型類。
必須繼承與models.Model類。
1) 設(shè)計BookInfo類。
2) 設(shè)計HeroInfo類。
Models.ForeignKey可以建立兩個模型類之間一對多的關(guān)系,django在生成表的時候,就會在多的表中創(chuàng)建一列作為外鍵,建立兩個表之間一對多的關(guān)系。
模型類生成表
1) 生成遷移文件
命令:python manage.py makemigrations
遷移文件是根據(jù)模型類生成的。
2) 執(zhí)行遷移生成表
命令:python mange.py migrate
根據(jù)遷移文件生成表。
生成表名的默認(rèn)格式:
應(yīng)用名_模型類名小寫
通過模型類操作數(shù)據(jù)表
進(jìn)入項目shell的命令:
python manage.py shell
以下為在相互shell終端中演示的例子:
首先導(dǎo)入模型類:
from booktest.models import BookInfo,HeroInfo
1)向booktest_bookinfo表中插入一條數(shù)據(jù)。
b = BookInfo() #定義一個BookInfo類的對象
b.btitle ='天龍八部' #定義b對象的屬性并賦值
b.bpub_date = date(1990,10,11)
b.save() #才會將數(shù)據(jù)保存進(jìn)數(shù)據(jù)庫
2)查詢出booktest_bookinfo表中id為1的數(shù)據(jù)。
b = BookInfo.objects.get(id=1)
3)在上一步的基礎(chǔ)上改變b對應(yīng)圖書的出版日期。
b.bpub_date = date(1989,10,21)
b.save() #才會更新表格中的數(shù)據(jù)
4)緊接上一步,刪除b對應(yīng)的圖書的數(shù)據(jù)。
b.delete() #才會刪除
5)向booktest_heroInfo表中插入一條數(shù)據(jù)。
h = HeroInfo()
h.hname = '郭靖'
h.hgender = False
h.hcomment = ‘降龍十八掌'
b2 = BookInfo.objects.get(id=2)
h.hbook = b2 #給關(guān)系屬性賦值,英雄對象所屬的圖書對象
h.save()
6)查詢圖書表里面的所有內(nèi)容。
BookInfo.objects.all()
HeroInfo.objects.all()
關(guān)系操作
1)查詢出id為2的圖書中所有英雄人物的信息。
b = BookInfo.objects.get(id=2)
b.heroinfo_set.all() #查詢出b圖書中所有英雄人物的信息
后臺管理
1) 本地化
語言和時區(qū)的本地化。 zh-hans
修改settings.py文件。 Asia/Shanghai
2) 創(chuàng)建管理員
命令:python manage.py createsuperuser
3) 注冊模型類
在應(yīng)用下的admin.py中注冊模型類。
告訴djang框架根據(jù)注冊的模型類來生成對應(yīng)表管理頁面。
b = BookInfo()
str(b) __str__
4) 自定義管理頁面
自定義模型管理類。模型管理類就是告訴django在生成的管理頁面上顯示哪些內(nèi)容。
視圖
在Django中,通過瀏覽器去請求一個頁面時,使用視圖函數(shù)來處理這個請求的,視圖函數(shù)處理之后,要給瀏覽器返回頁面內(nèi)容。
視圖函數(shù)的使用
1)定義視圖函數(shù)
視圖函數(shù)定義在views.py中。
例:
def index(request):
#進(jìn)行處理。。。
return HttpResponse('hello python')
視圖函數(shù)必須有一個參數(shù)request,進(jìn)行處理之后,需要返回一個HttpResponse的類對象,hello python就是返回給瀏覽器顯示的內(nèi)容。
2)進(jìn)行url配置
url配置的目的是讓建立url和視圖函數(shù)的對應(yīng)關(guān)系。url配置項定義在urlpatterns的列表中,每一個配置項都調(diào)用url函數(shù)。
url函數(shù)有兩個參數(shù),第一個參數(shù)是一個正則表達(dá)式,第二個是對應(yīng)的處理動作。
配置url時,有兩種語法格式:
a) url(正則表達(dá)式,視圖函數(shù)名)
b) url(正則表達(dá)式,include(應(yīng)用中的urls文件))
工作中在配置url時,首先在項目的urls.py文件中添加配置項時,并不寫具體的url和視圖函數(shù)之間的對應(yīng)關(guān)系,而是包含具體應(yīng)用的urls.py文件,在應(yīng)用的urls.py文件中寫url和視圖函數(shù)的對應(yīng)關(guān)系。
url匹配的過程
在項目的urls.py文件中包含具體應(yīng)用的urls.py文件,應(yīng)用的urls.py文件中寫url和視圖函數(shù)的對應(yīng)關(guān)系。
當(dāng)用戶輸入如http://127.0.0.1:8000/aindex時,去除域名和最前面的/,剩下aindex,拿aindex字符串到項目的urls文件中進(jìn)行匹配,配置成功之后,去除匹配的a字符,那剩下的index字符串繼續(xù)到項目的urls文件中進(jìn)行正則匹配,匹配成功之后執(zhí)行視圖函數(shù)index,index視圖函數(shù)返回內(nèi)容hello python給瀏覽器來顯示。
模板
模板不僅僅是一個html文件。
模板文件的使用
1) 創(chuàng)建模板文件夾
2) 配置模板目錄
3) 使用模板文件
a) 加載模板文件
去模板目錄下面獲取html文件的內(nèi)容,得到一個模板對象。
b) 定義模板上下文
向模板文件傳遞數(shù)據(jù)。
c) 模板渲染
得到一個標(biāo)準(zhǔn)的html內(nèi)容。
給模板文件傳遞數(shù)據(jù)
模板變量使用:{{ 模板變量名 }}
模板代碼段:{%代碼段%}
for循環(huán):
{% for i in list %}
{% endfor %}
以上這篇DJango的創(chuàng)建和使用詳解(默認(rèn)數(shù)據(jù)庫sqlite3)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用python對excle和json互相轉(zhuǎn)換的示例
今天小編就為大家分享一篇使用python對excle和json互相轉(zhuǎn)換的示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10Python實(shí)現(xiàn)排序算法、查找算法和圖遍歷算法實(shí)例
這篇文章主要介紹了Python實(shí)現(xiàn)排序算法、查找算法和圖遍歷算法實(shí)例,排序算法、查找算法和圖遍歷算法是計算機(jī)科學(xué)中常見且重要的算法。它們在數(shù)據(jù)處理、搜索和圖結(jié)構(gòu)等領(lǐng)域發(fā)揮著關(guān)鍵作用,需要的朋友可以參考下2023-08-08Python使用gTTS庫實(shí)現(xiàn)文本轉(zhuǎn)換為語音的詳細(xì)步驟
文本轉(zhuǎn)換為語音(Text-to-Speech,簡稱TTS)技術(shù)是人工智能的重要組成部分,廣泛應(yīng)用于智能助手、導(dǎo)航系統(tǒng)、讀屏軟件和智能家居等領(lǐng)域,TTS技術(shù)使得機(jī)器能夠?qū)嫖淖洲D(zhuǎn)換為自然流暢的語音,本文將介紹如何使用Python的gTTS庫實(shí)現(xiàn)簡單的TTS功能,需要的朋友可以參考下2024-07-07