Django Web开发基础环境配置流程
創建虛擬環境
mkvirtualenv django_py3_1.11 -p python3注意需要聯網
安裝Django
使用django 1.11.11版本,注意需要聯網
pip install django==1.11.11復習虛擬環境和pip的命令
# 虛擬環境 mkvirtualenv # 創建虛擬環境 rmvirtualenv # 刪除虛擬環境 workon # 進入虛擬環境、查看所有虛擬環境 deactivate # 退出虛擬環境# pip pip install # 安裝依賴包 pip uninstall # 卸載依賴包 pip list # 查看已安裝的依賴包 pip freeze # 凍結當前環境的依賴包創建工程
創建工程的命令為:
django-admin startproject 工程名稱- 與項目同名的目錄,此處為demo。
- settings.py?是項目的整體配置文件。
- urls.py?是項目的URL配置文件。
- wsgi.py?是項目與WSGI兼容的Web服務器入口。
- manage.py?是項目管理文件,通過它管理項目
運行開發服務器
python manage.py runserver ip:端口 或: python manage.py runserver可以不寫IP和端口,默認IP是127.0.0.1,默認端口為8000。
創建子應用
在django中,創建子應用模塊目錄仍然可以通過命令來操作,即:
python manage.py startapp 子應用名稱manage.py?為上述創建工程時自動生成的管理文件。
- admin.py?文件跟網站的后臺管理站點配置相關。
- apps.py?文件用于配置當前子應用的相關信息。
- migrations?目錄用于存放數據庫遷移歷史文件。
- models.py?文件用戶保存數據庫模型類。
- tests.py?文件用于開發測試用例,編寫單元測試。
- views.py?文件用于編寫Web應用視圖。
注冊安裝子應用
注冊安裝一個子應用的方法,即是將子應用的配置信息文件apps.py中的Config類添加到INSTALLED_APPS列表中。
例如,將剛創建的users子應用添加到工程中,可在INSTALLED_APPS列表中添加'users.apps.UsersConfig'。
創建視圖
打開剛創建的users模塊,在views.py中編寫視圖代碼。
from django.http import HttpResponsedef index(request): """ index視圖 :param request: 包含了請求信息的請求對象 :return: 響應對象 """ return HttpResponse("hello the world!"說明:
- 視圖函數的第一個傳入參數必須定義,用于接收Django構造的包含了請求數據的HttpReqeust對象,通常名為request。
- 視圖函數的返回值必須為一個響應對象,不能像Flask一樣直接返回一個字符串,可以將要返回的字符串數據放到一個HTTPResponse對象中。
在users/urls.py文件中定義路由信息。
from django.conf.urls import urlfrom . import views# urlpatterns是被django自動識別的路由列表變量 urlpatterns = [ # 每個路由信息都需要使用url函數來構造 # url(路徑, 視圖) url(r'^index/$', views.index), ]?在工程總路由demo/urls.py中添加子應用的路由數據。
from django.conf.urls import url, include from django.contrib import adminurlpatterns = [url(r'^admin/', admin.site.urls), # django默認包含的 # 添加 url(r'^users/', include('users.urls')), ]- 使用include來將子應用users里的全部路由包含進工程路由中;
- r'^users/'?決定了users子應用的所有路由都已/users/開頭,如我們剛定義的視圖index,其最終的完整訪問路徑為/users/index/。
啟動運行
重新啟動django程序
python manage.py runserver ?路由命名與reverse反解析(逆向)
路由命名
在定義路由的時候,可以為路由命名,方便查找特定視圖的具體路徑信息。
1) 在使用include函數定義路由時,可以使用namespace參數定義路由的命名空間,如
url(r'^users/', include('users.urls', namespace='users')),命名空間表示,凡是users.urls中定義的路由,均屬于namespace指明的users名下。
命名空間的作用:避免不同應用中的路由使用了相同的名字發生沖突,使用命名空間區別開。
2) 在定義普通路由時,可以使用name參數指明路由的名字,如
urlpatterns = [url(r'^index/$', views.index, name='index'),url(r'^say', views.say, name='say'), ]reverse反解析
使用reverse函數,可以根據路由名稱,返回具體的路徑,如:
from django.core.urlresolvers import reverse # 注意導包路徑def index(request): return HttpResponse("hello the world!") def say(request): url = reverse('users:index') # 返回 /users/index/ print(url) return HttpResponse('say')- 對于未指明namespace的,reverse(路由name)
- 對于指明namespace的,reverse(命名空間namespace:路由name)
靜態文件
項目中的CSS、圖片、js都是靜態文件。一般會將靜態文件放到一個單獨的目錄中,以方便管理。在html頁面中調用時,也需要指定靜態文件的路徑,Django中提供了一種解析的方式配置靜態文件路徑。靜態文件可以放在項目根目錄下,也可以放在應用的目錄下,由于有些靜態文件在項目中是通用的,所以推薦放在項目的根目錄下,方便管理。
為了提供靜態文件,需要配置兩個參數:
- STATICFILES_DIRS?存放查找靜態文件的目錄
- STATIC_URL?訪問靜態文件的URL前綴
示例
1) 在項目根目錄下創建static_files目錄來保存靜態文件。
2) 在demo/settings.py中修改靜態文件的兩個參數為
STATIC_URL = '/static/' STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static_files'), ]3)此時在static_files添加的任何靜態文件都可以使用網址?/static/文件在static_files中的路徑?來訪問了。
例如,我們向static_files目錄中添加一個index.html文件,在瀏覽器中就可以使用127.0.0.1:8000/static/index.html來訪問。
或者我們在static_files目錄中添加了一個子目錄和文件goods/detail.html,在瀏覽器中就可以使用127.0.0.1:8000/static/goods/detail.html來訪問。
注意
Django 僅在調試模式下(DEBUG=True)能對外提供靜態文件。
當DEBUG=False工作在生產模式時,Django不再對外提供靜態文件,需要是用collectstatic命令來收集靜態文件并交由其他靜態文件服務器來提供。
轉載于:https://www.cnblogs.com/yunlongaimeng/p/9785138.html
總結
以上是生活随笔為你收集整理的Django Web开发基础环境配置流程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: redis数据类型为key的常用命令
- 下一篇: [AHOI2013]作业