時(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)用程序而無需重新造輪子。參考:https://stormsha.com/article/2026/我們需要在合適的目錄內(nèi)創(chuàng)建一個(gè)虛擬環(huán)境(用virtualenv, virtualenvwrapper皆可,參考virtualenvwrapper的使用),我給它取名為webdev。
pip install virtualenv, virtualenvwrapper-winmkvirtualenv webdevworkon webdevpip install djangopip install psycopg2pip listpip freeze?# 如果需要退出或刪除虛擬環(huán)境deactivatermvirtualenv webdev
安裝數(shù)據(jù)庫:如果您不受任何遺留系統(tǒng)的束縛,并且可以自由選擇數(shù)據(jù)庫后端,那么我們建議您使用PostgreSQL,它可以在成本、功能、速度和穩(wěn)定性之間取得很好的平衡。(《 Django權(quán)威指南》第15頁)PostgreSQL的安裝步驟參考:https://www.runoob.com/postgresql/windows-install-postgresql.html
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)常修改的。cd mysitepython manage.py runserver
在settings.py內(nèi)將語言改成中文,時(shí)區(qū)改為杭州:LANGUAGE_CODE = 'zh-hans'?TIME_ZONE = 'Asia/Shanghai'
刷新瀏覽器看到中文頁面。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ā)中,就不要隨便開放共享啦~python manage.py startapp idiom
看看這個(gè)應(yīng)用程序下有哪些文件:idiom/ __init__.py admin.py apps.py migrations/ __init__.py models.py tests.py views.py
from django.http import HttpResponse?def index(request): return HttpResponse("Hello, world. You're at the idiom index.")
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'),]
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。include()
。python manage.py runserver
打開http://127.0.0.1:8000/idiom/ ,可以看到 Hello, world. You're at the idiom index. 這行文字。urls.py
中,我們都使用了path()
函數(shù),這個(gè)函數(shù)有兩個(gè)必需的參數(shù) route
和view
。path
(route,view,kwargs = None,name = None)route
是包含URL模式的字符串,比如目前我們有idiom/
和admin/
。在處理請求時(shí),Django從第一個(gè)模式開始,沿列表的順序,將請求的URL(域名后的部分)與每個(gè)模式進(jìn)行比較,直到找到匹配的URL。這個(gè)字符串支持用尖括號(hào)匹配和捕獲URL的一部分并將其作為關(guān)鍵字參數(shù)發(fā)送到視圖,view
就是指定的視圖函數(shù),也可以是一個(gè)django.urls.include()
。kwargs
參數(shù)允許我們將其他參數(shù)傳遞給視圖函數(shù)。name
不是必須的,但是命名URL的好處是便于在Django中的其他地方(尤其是在模板內(nèi)部)明確地引用它。關(guān)鍵詞:過程,實(shí)錄
客戶&案例
營銷資訊
關(guān)于我們
微信公眾號(hào)
版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。