全國(guó)咨詢(xún)/投訴熱線:400-618-4000

首頁(yè)技術(shù)文章正文

怎樣安裝和創(chuàng)建Django項(xiàng)目?

更新時(shí)間:2022-12-19 來(lái)源:黑馬程序員 瀏覽量:

Django其實(shí)也是Python內(nèi)置的包,可以通過(guò)pip工具管理。本書(shū)使用的Django版本為2.2.3,在虛擬環(huán)境first_env中使用pip工具安裝Django,具體命令如下:

(first env) C: \Users\admin>pip install django==2.2.3

若命令執(zhí)行后命令行輸出以下信息,則說(shuō)明Django安裝成功。

Successfully installed Django-2.2.3 pytz-2019.2 sqlparse-0.3.0

此時(shí)可以使用pip list命令查看虛擬環(huán)境中安裝的包,具體如下:

Package     Version
----------  -------
Django      2.2.3
pip         19.2.1
pytz        2019.2
setuptools  41.0.1
sqlparse    0.3.0
wheel       0.33.4

若想驗(yàn)證Django是否能被Python識(shí)別,可在命令行輸入“python”,進(jìn)入Python解釋器,在Python解釋器中嘗試導(dǎo)入Django,示例如下:

(first_env) C: \Users \admin>python
Python 3.7.2 (tags/v3.7.2:9a3ffc0492, Dec 23 2018, 23:09:28) [MSC v.1916 64 bit
(AMD64)] on win32
Type "help", "copyright", "credits" or license" for more information.
>>> import django
>>> print (django.get_version ())
2.2.3

新建Django項(xiàng)目

使用Django提供的命令,可以創(chuàng)建一個(gè)Django項(xiàng)目實(shí)例需要的配置項(xiàng)——包括數(shù)據(jù)庫(kù)配置、Django配置和應(yīng)用程序配置的集合。新建Django項(xiàng)目命令的語(yǔ)法格式如下:

django-admin startproject 項(xiàng)目名稱(chēng)

打開(kāi)命令行,并執(zhí)行以下命令:

django-admin startproject mysite

以上命令會(huì)在當(dāng)前目錄下創(chuàng)建一個(gè)名為mysite的Django項(xiàng)目。需注意應(yīng)避免使用Python或Django的內(nèi)部保留字為項(xiàng)目命名。

查看Django項(xiàng)目結(jié)構(gòu),具體如下:

mysite\
    manage.py
    mysite\
       _init_.py
       settings.py
       urls.py
       wsgi.py

Django項(xiàng)目結(jié)構(gòu)中目錄和文件的說(shuō)明如下:

①mysite:根目錄,項(xiàng)目的容器。Django不關(guān)心它的名字,可以重新為它命名。

②manage.py:一個(gè)提供Django項(xiàng)目管理功能的命令行工具。

③mysite:一個(gè)純Python包,其中存放項(xiàng)目文件,在引用項(xiàng)目文件時(shí)會(huì)使用到這個(gè)包名,例如mysite.urls.

④ mysite\_init___.py: 一個(gè)空文件, 告訴Python這個(gè)文件所在的目錄應(yīng)被視為一個(gè)Python包。

⑤mysitelsettings.py:Django項(xiàng)目的配置文件。后續(xù)內(nèi)容將介紹該文件的更多細(xì)節(jié)。

⑥ mysite\urls.py:Django項(xiàng)目的URL聲明,包含Django支持的站點(diǎn)的“目錄”,實(shí)現(xiàn)路由分發(fā)功能,其中的每個(gè)URL將映射一個(gè)視圖。

⑦mysitelwsgi.py:兼容WSGI(Web服務(wù)器網(wǎng)關(guān)接口)的Web服務(wù)器的入口,為項(xiàng)目提供服務(wù)。

運(yùn)行開(kāi)發(fā)服務(wù)器
Django提供了一個(gè)使用Python編寫(xiě)的輕量級(jí)開(kāi)發(fā)服務(wù)器,開(kāi)發(fā)期間可暫不配置生產(chǎn)服務(wù)器(如Apache),先基于此服務(wù)器進(jìn)行測(cè)試。項(xiàng)目創(chuàng)建完成后可以啟動(dòng)開(kāi)發(fā)服務(wù)器來(lái)檢測(cè)項(xiàng)目是否有效。使用cd命令切換到根目錄mysite中打開(kāi)命令行,運(yùn)行以下命令:

python manage.py runserver

命令行中將輸出以下內(nèi)容:

Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).

You have 17 unapplied migration(s). Your project may not work properly until
you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
August 08, 2019 - 14:25:31
Django version 2.2.3, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.

以上輸出中的加粗部分是未應(yīng)用數(shù)據(jù)庫(kù)遷移的警告,此部分將在第3章模型中詳細(xì)介紹,請(qǐng)暫時(shí)忽略。

輸出信息“Starting development server at http://127.0.0.1:8000/”表明開(kāi)發(fā)服務(wù)器已經(jīng)成功啟動(dòng)。在瀏覽器中訪問(wèn)開(kāi)發(fā)服務(wù)器:http://127.0.0.1:8000/,呈現(xiàn)的頁(yè)面如下圖所示。

頁(yè)面呈現(xiàn)

此時(shí)查看控制臺(tái)窗口,可看到瀏覽器發(fā)送來(lái)的GET請(qǐng)求,具體如下:

[08/Aug/2019 14:39:52] "GET /static/admin/fonts/Roboto-Bold-webfont.w
HTTP/1.1" 304 0

瀏覽器的每個(gè)請(qǐng)求都會(huì)在開(kāi)發(fā)服務(wù)器的控制臺(tái)窗口中打印,運(yùn)行開(kāi)發(fā)服務(wù)器時(shí)產(chǎn)生的錯(cuò)誤也會(huì)在其中顯示。

多學(xué)一招:更改開(kāi)發(fā)服務(wù)器端口

默認(rèn)情況下開(kāi)發(fā)服務(wù)器在本地IP的8000端口上啟動(dòng),若要更改端口,可將端口作為命令行參數(shù)傳遞。例如,在端口8080上啟動(dòng)服務(wù)器,命令如下:

python manage.py runserver 8080

若想更改服務(wù)器的IP,需將IP與端口號(hào)一起傳遞。例如,偵聽(tīng)所有可用的公共IP,示例如下:

python manage.py runserver 0:8000

以上示例中的IP地址“0”是“0.0.0.0”的簡(jiǎn)寫(xiě)。

分享到:
在線咨詢(xún) 我要報(bào)名
和我們?cè)诰€交談!