創(chuàng)建APP
**在Django中的一個(gè)app代表一個(gè)功能模塊。**開(kāi)發(fā)者可以將不同功能的模塊放在不同的app中, 方便代碼的復(fù)用。app就是項(xiàng)目的基石,因此開(kāi)發(fā)博客的第一步就是創(chuàng)建新的app,用來(lái)實(shí)現(xiàn)跟文章相關(guān)的功能模塊。
打開(kāi)命令行,進(jìn)入項(xiàng)目所在的目錄:(注意Django的操作必須在虛擬環(huán)境下進(jìn)行)
E:\>cd django_project
E:\django_project>
進(jìn)入虛擬環(huán)境(忘記進(jìn)入venv方法的看這里: 在Windows中搭建Django的開(kāi)發(fā)環(huán)境):
E:\django_project> env\Scripts\activate.bat
(env) E:\>
看到盤符前有(env) 標(biāo)識(shí)則表示進(jìn)入虛擬環(huán)境成功。
輸入python manage.py startapp article 指令,創(chuàng)建名為article 的app:
(env) E:\django_project\my_blog>python manage.py startapp article
查看一下my_blog 文件夾,應(yīng)該看到這樣的結(jié)構(gòu):
my_blog
│ db.sqlite3
│ manage.py
│
├─article
│ │ admin.py
│ │ apps.py
│ │ models.py
│ │ tests.py
│ │ views.py
│ │ __init__.py
│ │
│ └─migrations
│ __init__.py
│
└─my_blog
│ settings.py
│ urls.py
│ wsgi.py
└─ __init__.py
其中article 文件夾就是剛創(chuàng)建出來(lái)的app,用來(lái)放置博客文章相關(guān)的代碼。
注冊(cè)APP(settings)
接著我們需要修改項(xiàng)目配置文件,“告訴”Django現(xiàn)在有article這么一個(gè)app了。
打開(kāi)根目錄的settings.py ,找到INSTALLED_APPS 寫入如下代碼:
settings.py/
INSTALLED_APPS = [
# 其他代碼
...
# 新增'article'代碼,激活app
'article',
]
配置訪問(wèn)路徑(urls)
然后再給app配置訪問(wèn)路徑url。
url可以理解為訪問(wèn)網(wǎng)站時(shí)輸入的網(wǎng)址鏈接,配置好url后Django才知道怎樣定位app。
打開(kāi)根目錄下的urls.py ,增加以下代碼:
urls.py/
from django.contrib import admin
# 記得引入include
from django.urls import path, include
# 存放映射關(guān)系的列表
urlpatterns = [
path('admin/', admin.site.urls),
# 新增代碼,配置app的url
path('article/', include('article.urls', namespace='article')),
]
path 為Django的路由語(yǔ)法。參數(shù)article/ 分配了app的訪問(wèn)路徑;include 將路徑分發(fā)給下一步處理;namespace 可以保證反查到唯一的url,即使不同的app使用了相同的url(后面會(huì)用到)。記得在頂部引入include 。
**還沒(méi)結(jié)束。**現(xiàn)在我們已經(jīng)通過(guò)path 將根路徑為article/ 的訪問(wèn)都分發(fā)給article這個(gè)app去處理。但是app通常有多個(gè)頁(yè)面地址,因此還需要app自己也有一個(gè)路由分發(fā),也就是article.urls 了。
在app生成時(shí)并沒(méi)有這個(gè)文件,因此需要自己在article/ 文件夾中創(chuàng)建urls.py ,在里面輸入:
article/urls.py
# 引入path
from django.urls import path
# 正在部署的應(yīng)用的名稱
app_name = 'article'
urlpatterns = [
# 目前還沒(méi)有urls
]
urlpatterns 中暫時(shí)是空的,沒(méi)寫入任何路徑的映射,不著急以后會(huì)寫。
注意Django2.0之后,app的urls.py 必須配置app_name ,否則會(huì)報(bào)錯(cuò)。
此時(shí)我們的app就配置完成了。
總結(jié)
本章創(chuàng)建了博客文章功能的app,學(xué)習(xí)了注冊(cè)app并配置url。
下一章開(kāi)始編寫模型Model,理解Django的數(shù)據(jù)庫(kù)處理。
-
有疑問(wèn)請(qǐng)?jiān)?a href="http://www." rel="nofollow">杜賽的個(gè)人網(wǎng)站留言,我會(huì)盡快回復(fù)。
-
或Email私信我:dusaiphoto@foxmail.com
-
項(xiàng)目完整代碼:Django_blog_tutorial
轉(zhuǎn)載請(qǐng)告知作者并注明出處。
|