国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

15158846557 在線咨詢 在線咨詢
15158846557 在線咨詢
所在位置: 首頁 > 營銷資訊 > 網(wǎng)站運(yùn)營 > 2021最新版Django 3 網(wǎng)站開發(fā)全過程實(shí)錄(一)

2021最新版Django 3 網(wǎng)站開發(fā)全過程實(shí)錄(一)

時(shí)間:2023-05-29 05:12:01 | 來源:網(wǎng)站運(yùn)營

時(shí)間:2023-05-29 05:12:01 來源:網(wǎng)站運(yùn)營

2021最新版Django 3 網(wǎng)站開發(fā)全過程實(shí)錄(一):網(wǎng)站一般需要實(shí)現(xiàn)三種基本功能:連接數(shù)據(jù)庫、處理用戶請求、頁面設(shè)計(jì)的刪改。Django的優(yōu)勢在于將這些功能設(shè)計(jì)成獨(dú)立的模塊,形成一套web框架。利用Django框架開發(fā)網(wǎng)站,能讓我們專注于編寫應(yīng)用程序而無需重新造輪子。

Django 采用了 MVT 的軟件設(shè)計(jì)模式,即模型(Model)、視圖(View)和模板(Template)。這種設(shè)計(jì)模式的優(yōu)勢在于各個(gè)組件松散結(jié)合,每個(gè)APP應(yīng)用都有明確的目的,并且可獨(dú)立更改而不影響其它部分。如此,使得頁面設(shè)計(jì)與業(yè)務(wù)邏輯互不影響。同時(shí),Django是一套出色的動(dòng)態(tài)內(nèi)容管理系統(tǒng),擅長動(dòng)態(tài)提供數(shù)據(jù)庫驅(qū)動(dòng)的信息。

以下是我使用Django 3.1.7搭建網(wǎng)站過程的實(shí)錄,力求完整、準(zhǔn)確、無誤地記錄每個(gè)操作步驟與細(xì)節(jié)。

環(huán)境搭建與工具安裝

參考:https://stormsha.com/article/2026/
我們需要在合適的目錄內(nèi)創(chuàng)建一個(gè)虛擬環(huán)境(用virtualenv, virtualenvwrapper皆可,參考virtualenvwrapper的使用),我給它取名為webdev。

在該虛擬環(huán)境,安裝djangopsycopg2工具包(用于管理PostgreSQL數(shù)據(jù)庫)。

pip install virtualenv, virtualenvwrapper-winmkvirtualenv webdevworkon webdevpip install djangopip install psycopg2pip listpip freeze?# 如果需要退出或刪除虛擬環(huán)境deactivatermvirtualenv webdev安裝數(shù)據(jù)庫:

Django支持四種數(shù)據(jù)庫:PostgreSQL、SQLite 3、MySQL、Oracle。

我選擇PostgreSQL,它比MySQL更適合Django,Django的創(chuàng)建者如是說:

如果您不受任何遺留系統(tǒng)的束縛,并且可以自由選擇數(shù)據(jù)庫后端,那么我們建議您使用PostgreSQL,它可以在成本、功能、速度和穩(wěn)定性之間取得很好的平衡。(《 Django權(quán)威指南》第15頁)
PostgreSQL的安裝步驟參考:https://www.runoob.com/postgresql/windows-install-postgresql.html

打開后設(shè)置語言為中文,然后關(guān)閉。

創(chuàng)建項(xiàng)目(project)

下面在剛剛的虛擬環(huán)境webdev內(nèi)創(chuàng)建一個(gè)項(xiàng)目mysite(你可以選擇任意其他名字),項(xiàng)目是我們所建立的網(wǎng)站上所有應(yīng)用程序的集合,并共用一套數(shù)據(jù)庫配置。

cd webdevdjango-admin startproject mysite我們看到新建了一個(gè)文件夾mysite及下面的子文件夾mysite/mysite:

mysite/ manage.py mysite/ __init__.py settings.py urls.py asgi.py wsgi.py我們可以把子文件夾mysite/mysite視為整個(gè)項(xiàng)目的配置,其中的settings.py和urls.py這兩個(gè)文件是我們以后需要經(jīng)常修改的。

啟動(dòng)服務(wù)器(server)

啟動(dòng)服務(wù)器,服務(wù)器會(huì)監(jiān)測你的代碼更新并自動(dòng)加載,所以無須重啟才看到效果:

cd mysitepython manage.py runserver在settings.py內(nèi)將語言改成中文,時(shí)區(qū)改為杭州:

LANGUAGE_CODE = 'zh-hans'?TIME_ZONE = 'Asia/Shanghai'刷新瀏覽器看到中文頁面。

我們可以指定服務(wù)器的端口和IP地址。比如,把地址設(shè)為自己的IP地址(例如192.168.1.110)或0.0.0.0,讓聯(lián)網(wǎng)的其他計(jì)算機(jī)可見:

python manage.py runserver 0.0.0.0:8000使用Windows的用戶用ipconfig命令獲取本地網(wǎng)絡(luò)中的IP 地址,然后復(fù)制到setting.py中,比如我是這個(gè):

ALLOWED_HOSTS = ['192.168.1.110']于是,在其他電腦或手機(jī)瀏覽器打開 http://192.168.1.110:8000/ 就可以訪問啦!完美!不過網(wǎng)站還在開發(fā)中,就不要隨便開放共享啦~

創(chuàng)建應(yīng)用程序(APP)

項(xiàng)目和應(yīng)用的區(qū)分:

應(yīng)用放在任意路徑都可以,但我們一般放在manage.py文件相同的目錄中,與mysite子文件夾平行。在這里我創(chuàng)建一個(gè)成語檢索的app,名為idiom:

python manage.py startapp idiom看看這個(gè)應(yīng)用程序下有哪些文件:

idiom/ __init__.py admin.py apps.py migrations/ __init__.py models.py tests.py views.py

編寫視圖(views)

下面為這個(gè)應(yīng)用程序idiom添磚加瓦,分為三個(gè)步驟:

  1. 創(chuàng)建視圖函數(shù)
  2. 將視圖函數(shù)映射到APP的urls
  3. 將APP中的urls連入網(wǎng)站的根urls
這樣看邏輯可能更清晰:視圖函數(shù) --> APP的urls --> 網(wǎng)站的urls

創(chuàng)建視圖函數(shù)

打開文件idiom/views.py ,加入以下Python代碼,創(chuàng)建index視圖函數(shù)

from django.http import HttpResponse?def index(request): return HttpResponse("Hello, world. You're at the idiom index.")

映射到APP的urls

要調(diào)用該視圖,我們要將其映射到URL,為此,我們需要添加一個(gè)URL配置(URLconf)。URLconf相當(dāng)于網(wǎng)站的目錄,也就是URL模式與視圖函數(shù)之間的映射表。

我們在idiom應(yīng)用的目錄下創(chuàng)建一個(gè)名為urls.py的文件,windows操作如下:

type nul>urls.py看看現(xiàn)在的應(yīng)用目錄:

idiom/ __init__.py admin.py apps.py migrations/ __init__.py models.py tests.py urls.py views.py然后在idiom/urls.py這個(gè)空文件中加入以下代碼,將index視圖映射到APP的url模式:

from django.urls import path?from . import views?urlpatterns = [ path('', views.index, name='index'),]

連入網(wǎng)站的urls

下一步是將根URLconf(mysite/urls.py)指向idiom.urls模塊,使得網(wǎng)站域名連接到app的url。我們打開mysite/urls.py,修改為:

from django.contrib import adminfrom django.urls import include, path?urlpatterns = [ path('idiom/', include('idiom.urls')), path('admin/', admin.site.urls),]include()功能允許引用其他URLconf,這樣我們就將剛剛創(chuàng)建的index視圖連接到了網(wǎng)站的URLconf。

也就是說,目前我們可以打開兩個(gè)網(wǎng)址:

http://example.com/idiom/

http://example.com/admin/

注意idiom和admin在引用URL模式時(shí)的區(qū)別:除了admin.site.urls(用于管理后臺(tái)),我們引用其他URL模式時(shí),都應(yīng)使用include()。

最后,驗(yàn)證下是否正常運(yùn)行:

python manage.py runserver打開http://127.0.0.1:8000/idiom/ ,可以看到 Hello, world. You're at the idiom index. 這行文字。

URLconf的工作原理

Django允許我們根據(jù)需要設(shè)計(jì)每個(gè)應(yīng)用程序的URL,通過創(chuàng)建URLconf(URL配置)。

在 idiom和mysite文件夾下的urls.py中,我們都使用了path()函數(shù),這個(gè)函數(shù)有兩個(gè)必需的參數(shù) routeview。

pathrouteview,kwargs = Nonename = None

參考:django.urls functions for use in URLconfs

關(guān)鍵詞:過程,實(shí)錄

74
73
25
news

版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點(diǎn)擊下載Chrome瀏覽器
關(guān)閉