溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Django的初識(shí)

發(fā)布時(shí)間:2020-07-19 08:06:09 來(lái)源:網(wǎng)絡(luò) 閱讀:535 作者:cuizhiliang 欄目:開(kāi)發(fā)技術(shù)

【背景】

1 確保安裝了pip python包的管理工具

2 確保你的python環(huán)境是3.x(因?yàn)閐jango版本1.8以上需要python 3支持了)

    如果你是centos用戶或者python版本不是python 3 請(qǐng)使用pyenv工具實(shí)現(xiàn)多版本python版本吧





【安裝】

pip install django


【驗(yàn)證】

可以正常import django模塊

Django的初識(shí)




【使用django搭建一個(gè)簡(jiǎn)單的項(xiàng)目】


step1:創(chuàng)建一個(gè)項(xiàng)目

使用管理工具django-admin.py命令創(chuàng)建一個(gè)項(xiàng)目firstproject

django-admin.py startproject firstproject


結(jié)果:

Django的初識(shí)

目錄說(shuō)明:

  • firstproject: 項(xiàng)目的容器。

  • manage.py: 一個(gè)實(shí)用的命令行工具,可讓你以各種方式與該 Django 項(xiàng)目進(jìn)行交互。

  • firstproject/__init__.py: 一個(gè)空文件,告訴 Python 該目錄是一個(gè) Python 包。

  • firstproject/settings.py: 該 Django 項(xiàng)目的設(shè)置/配置。

  • firstproject/urls.py: 該 Django 項(xiàng)目的 URL 聲明; 一份由 Django 驅(qū)動(dòng)的網(wǎng)站"目錄"。

  • firstproject/wsgi.py: 一個(gè) WSGI 兼容的 Web 服務(wù)器的入口,以便運(yùn)行你的項(xiàng)目。



step2:測(cè)試并啟動(dòng)程序提供web訪問(wèn)

cd firstproject/
python manage.py runserver 0.0.0.0:80

注意: 如果沒(méi)有指定80端口,默認(rèn)是8000端口


結(jié)果:

Django的初識(shí)當(dāng)然看到提示:

1 你還沒(méi)有在這個(gè)項(xiàng)目下面建立app應(yīng)用

2 你也沒(méi)有配置url



set3 在這個(gè)firstproject項(xiàng)目建立第一個(gè)應(yīng)用app(blog)

python manage.py startapp blog


默認(rèn)生成了blog這個(gè)目錄,目錄下面的文件介紹

__init__.py python包的標(biāo)識(shí)

admin.py   

apps.py

migrations  數(shù)據(jù)庫(kù)遷移相關(guān)暫時(shí)可以忽略

models.py  數(shù)據(jù)庫(kù)模型建表等用途,暫時(shí)可以忽略

tests.py    

views.py    views視圖,暫時(shí)可以忽略



每個(gè)文件下,都有默認(rèn)的內(nèi)容! 這就是django把很多都是都集成了的原因!

Django的初識(shí)



step4: 將新建的應(yīng)用加入django管理當(dāng)中,添加到setting配置文件中,讓django能夠識(shí)別找到

vim firstproject/settings.py 


# Application definition


INSTALLED_APPS = [

    'django.contrib.admin',

    'django.contrib.auth',

    'django.contrib.contenttypes',

    'django.contrib.sessions',

    'django.contrib.messages',

    'django.contrib.staticfiles',

    'blog',

]


注意:新建的 app 如果不加到 INSTALL_APPS 中的話, django 就不能自動(dòng)找到app中的模板文件(app-name/templates/下的文件)和靜態(tài)文件(app-name/static/中的文件) 


step5:編輯自定義視圖函數(shù)

你應(yīng)考慮你訪問(wèn)一個(gè)網(wǎng)站 https://www.douban.com/photos/album/1628799196/

django內(nèi)部是如何處理photos/album/1628799196/這些url呢?


我們開(kāi)始我們簡(jiǎn)答的views修改和urls定義:


編輯blog這個(gè)app目錄下的views.py文件:


from django.http import HttpResponse


def index(request):

    return HttpResponse('this is my blog')



導(dǎo)入入HttpResponse,它是用來(lái)向網(wǎng)頁(yè)返回內(nèi)容的,就像Python中的 print 一樣,只不過(guò) HttpResponse 是把內(nèi)容顯示到網(wǎng)頁(yè)上。

我們定義了一個(gè)index()函數(shù),第一個(gè)參數(shù)必須是 request,與網(wǎng)頁(yè)發(fā)來(lái)的請(qǐng)求有關(guān),request 變量里面包含getpost的內(nèi)容,用戶瀏覽器,系統(tǒng)等信息在里面(后面會(huì)講,先了解一下就可以)。


測(cè)試訪問(wèn): 192.168.100.10/index

Django的初識(shí)

原因是:django中沒(méi)有定義index這個(gè)url路徑的處理方式



step6:定義視圖函數(shù)相關(guān)的URL(網(wǎng)址) (即規(guī)定 訪問(wèn)什么網(wǎng)址對(duì)應(yīng)什么內(nèi)容)

編輯項(xiàng)目下的urls管理文件      vim firstproject/urls.py,  將剛才需要處理的index函數(shù)和/index路徑對(duì)應(yīng)起來(lái)! 下面admin/是系統(tǒng)默認(rèn)的, 我們添加的那句意思是路徑index/開(kāi)頭的的,轉(zhuǎn)發(fā)到blog下面的views文件下面的index函數(shù)(views.index這是python的表示方法,你應(yīng)該懂得)



from blog import views


urlpatterns = [

    url(r'^index/', views.index),

    url(r'^admin/', admin.site.urls),

]



注意: 以上這中方式是函數(shù)式的添加url的方法


當(dāng)然實(shí)際運(yùn)用當(dāng)中,我們對(duì)于首頁(yè)一般處理的方式是
url(r'^$', views.index)  這樣的表示




測(cè)試:

Django的初識(shí)

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI