溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

DJango如何創建和使用

發布時間:2021-07-12 10:41:05 來源:億速云 閱讀:126 作者:小新 欄目:開發技術

這篇文章主要為大家展示了“DJango如何創建和使用”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“DJango如何創建和使用”這篇文章吧。

1.安裝虛擬環境

虛擬環境是真實python環境的復制版本。

安裝虛擬環境的命令:

1)sudo pip install virtualenv #安裝虛擬環境

2)sudo pip install virtualenvwrapper #安裝虛擬環境擴展包

3)編輯家目錄下面的.bashrc文件,添加下面兩行。

export WORKON_HOME=$HOME/.virtualenvs

source /usr/local/bin/virtualenvwrapper.sh

4)使用source .bashrc使其生效一下。

創建虛擬環境命令:

mkvirtualenv 虛擬環境名

創建python3虛擬環境:

mkvirtualenv -p python3 bj11_py3

進入虛擬環境工作:

workon 虛擬環境名

查看機器上有多少個虛擬環境:

workon 空格 + 兩個tab鍵

退出虛擬環境:

deactivate

刪除虛擬環境:

rmvirtualenv 虛擬環境名

虛擬環境下安裝包的命令:

pip install 包名

注意:不能使用sudo pip install 包名,這個命令會把包安裝到真實的主機環境上而不是安裝到虛擬環境中。

apt-get install 軟件

pip install python包名

安裝django環境:

pip install django==1.8.2

查看虛擬環境中安裝了哪些python包:

pip list

pip freeze

2.創建項目

django-admin startproject 項目名稱

注意:創建應用必須先進入虛擬環境

DJango如何創建和使用

__init__.py: 說明test1是一個python包。

settings.py: 項目的配置文件

urls.py: 進行url路由的配置

wsgi.py: web服務器和DJanggo交互的入口

manage.py: 項目的管理文件

3.創建應用

一個項目由很多個應用組成的,每一個應用完成一個特定的功能。

創建應用的命令如下:

python manage.py startapp 應用名

注 意:創建應用時需要先進入項目目錄。

應用目錄如下:

__init__.py: 說明目錄是一個python模塊

models.py: 用于寫和數據庫項目的內容

views.py: 接收數據,處理數據,與M,T進行交互,返回應答

定義處理函數,視圖函數 培養

tests.py: 測試代碼的文件

admin.py: 網站后臺管理相關的文件

建立應用和項目之間的聯系,需要對應用進行注冊。

修改settings.py中的INSTALLED_APPS配置項。

運行開發web服務器命令:

python manage.py runserver

ORM

django中內嵌了ORM框架,ORM框架可以將類和數據表進行對應起來,只需要通過類和對象就可以對數據表進行操作。

設計類:模型類。

ORM另外一個作用:根據設計的類生成數據庫中的表。

模型類

模型類設計

在應用models.py中設計模型類。

必須繼承與models.Model類。

1) 設計BookInfo類。

2) 設計HeroInfo類。

Models.ForeignKey可以建立兩個模型類之間一對多的關系,django在生成表的時候,就會在多的表中創建一列作為外鍵,建立兩個表之間一對多的關系。

模型類生成表

1) 生成遷移文件

命令:python manage.py makemigrations

遷移文件是根據模型類生成的。

2) 執行遷移生成表

命令:python mange.py migrate

根據遷移文件生成表。

生成表名的默認格式:

應用名_模型類名小寫

通過模型類操作數據表

進入項目shell的命令:

python manage.py shell

以下為在相互shell終端中演示的例子:

首先導入模型類:

from booktest.models import BookInfo,HeroInfo

1)向booktest_bookinfo表中插入一條數據。

b = BookInfo() #定義一個BookInfo類的對象

b.btitle ='天龍八部' #定義b對象的屬性并賦值

b.bpub_date = date(1990,10,11)

b.save() #才會將數據保存進數據庫

2)查詢出booktest_bookinfo表中id為1的數據。

b = BookInfo.objects.get(id=1)

3)在上一步的基礎上改變b對應圖書的出版日期。

b.bpub_date = date(1989,10,21)

b.save() #才會更新表格中的數據

4)緊接上一步,刪除b對應的圖書的數據。

b.delete() #才會刪除

5)向booktest_heroInfo表中插入一條數據。

h = HeroInfo()

h.hname = '郭靖'
h.hgender = False

h.hcomment = ‘降龍十八掌'

b2 = BookInfo.objects.get(id=2)

h.hbook = b2 #給關系屬性賦值,英雄對象所屬的圖書對象

h.save()

6)查詢圖書表里面的所有內容。

BookInfo.objects.all()

HeroInfo.objects.all()

關系操作

1)查詢出id為2的圖書中所有英雄人物的信息。

b = BookInfo.objects.get(id=2)

b.heroinfo_set.all() #查詢出b圖書中所有英雄人物的信息

后臺管理

1) 本地化

語言和時區的本地化。 zh-hans

修改settings.py文件。 Asia/Shanghai

2) 創建管理員

命令:python manage.py createsuperuser

3) 注冊模型類

在應用下的admin.py中注冊模型類。

告訴djang框架根據注冊的模型類來生成對應表管理頁面。

b = BookInfo()

str(b) __str__

4) 自定義管理頁面

自定義模型管理類。模型管理類就是告訴django在生成的管理頁面上顯示哪些內容。

視圖

在Django中,通過瀏覽器去請求一個頁面時,使用視圖函數來處理這個請求的,視圖函數處理之后,要給瀏覽器返回頁面內容。

視圖函數的使用

1)定義視圖函數

視圖函數定義在views.py中。

例:

def index(request):

#進行處理。。。

return HttpResponse('hello python')

視圖函數必須有一個參數request,進行處理之后,需要返回一個HttpResponse的類對象,hello python就是返回給瀏覽器顯示的內容。

2)進行url配置

url配置的目的是讓建立url和視圖函數的對應關系。url配置項定義在urlpatterns的列表中,每一個配置項都調用url函數。

url函數有兩個參數,第一個參數是一個正則表達式,第二個是對應的處理動作。

配置url時,有兩種語法格式:

a) url(正則表達式,視圖函數名)

b) url(正則表達式,include(應用中的urls文件))

工作中在配置url時,首先在項目的urls.py文件中添加配置項時,并不寫具體的url和視圖函數之間的對應關系,而是包含具體應用的urls.py文件,在應用的urls.py文件中寫url和視圖函數的對應關系。

url匹配的過程

在項目的urls.py文件中包含具體應用的urls.py文件,應用的urls.py文件中寫url和視圖函數的對應關系。

當用戶輸入如http://127.0.0.1:8000/aindex時,去除域名和最前面的/,剩下aindex,拿aindex字符串到項目的urls文件中進行匹配,配置成功之后,去除匹配的a字符,那剩下的index字符串繼續到項目的urls文件中進行正則匹配,匹配成功之后執行視圖函數index,index視圖函數返回內容hello python給瀏覽器來顯示。

模板

模板不僅僅是一個html文件。

模板文件的使用

1) 創建模板文件夾

2) 配置模板目錄

3) 使用模板文件

a) 加載模板文件

去模板目錄下面獲取html文件的內容,得到一個模板對象。

b) 定義模板上下文

向模板文件傳遞數據。

c) 模板渲染

得到一個標準的html內容。

給模板文件傳遞數據

模板變量使用:{{ 模板變量名 }}

模板代碼段:{%代碼段%}

for循環:

{% for i in list %}

{% endfor %}

以上是“DJango如何創建和使用”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女