1、虛擬環境搭建
創建新的Django框架的虛擬環境:
注意:如果沒有pipenv指令,需要安裝這個支持庫,同時需要記住配置它的環境變量,否則虛擬環境會安裝在默認文件夾下(一般是C:\Users\Administrator.virtualenvs)
# Windows安裝pipenv
pip install pipenv
pipenv shell # 進入虛擬環境
exit # 退出虛擬環境
pipenv --rm # 刪除整個環境 不會刪除pipfile
Window系統安裝Django 2.2(注意要在虛擬環境下)
# Window系統安裝Django 2.2
pycharm設置python解釋器
2、MVC思想與Django的MVT區別
在Django框架中,將Controller改換成Templates模板,就成了MVT,但是在Django中的View視圖負責的功能就是MVC思想中Controller的功能。
3、Django項目的創建
1. 命令行創建
推薦使用命令行創建項目的方法
# 進入虛擬環境,xxx是自己創建的虛擬環境文件夾
cd /d xxx
pipenv shell
# 查看虛擬環境python的版本,需要是3.6的
python
# 創建項目:打開終端,使用命令:
django-admin startproject [項目名稱]
比如:django-admin startproject first_project。
注意:項目名稱注意儘量不要有中文,項目路徑也儘量不要有。
2. Pycharm專業版創建Django
需要使用Pycharm Professional版本的,社區版本無法創建。
Pycharm專業版本激活方法參考:https://shimo.im/docs/DJ3h3tJv98ppTYyH/read
4、運行Django項目
1. 命令行運行項目
# 啓動Django項目
python manage.py runserver
# 如果想要在項目啓動的時候指定端口,可以執行
python manage.py runserver 8888
# 此時就可以使用http://127.0.0.1:8888/ 端口進行訪問Django
上圖中有紅色部分提醒信息是因爲有些Django默認的信息我們還沒更改,比如admin, auth, contenttypes, sessions.
運行成功顯示界面效果:Django默認開啓Debug模式,此時版本爲2.2.
且Django默認自帶後臺
2. Pycharm啓動項目
1.選擇Edit Configurations選擇項
2.添加 runserver 參數
3.在manage.py文件中右鍵選擇Run manage,項目啓動成功如下:
5、項目結構介紹
以下是Django項目固定的設置,不同於Flask框架。
- manage.py:和項目交互基本上都是基於這個文件。一般都是在終端輸入
python manage.py [子命令]
。
可以輸入python manage.py help
看下能做什麼事情。除非你知道你自己在做什麼,一般情況下不應該編輯這個文件。 - settings.py:本項目的設置項,以後所有和項目相關的配置都是放在這個裏面。Flask框架中是人爲定義的config.py文件。
- urls.py:這個文件是用來配置URL路由的。比如訪問http://127.0.0.1/news/是訪問新聞列表頁,這些東西就需要在這個文件中完成。Flask框架中是通過route的裝飾器去配置路由,或者類視圖綁定路由。
- wsgi.py:項目與WSGI協議兼容的web服務器入口,服務器部署的時候需要用到的,一般情況下也是不需要修改的。
1. project和app的關係
app是django項目的組成部分。一個app代表項目中的一個模塊,所有URL請求的響應都是由app來處理。比如豆瓣,裏面有圖書,電影,音樂,同城等許許多多的模塊,如果站在django的角度來看,圖書,電影這些模塊就是app,圖書,電影這些app共同組成豆瓣這個項目。因此這裏要有一個概念: django項目由許多app組成,一個app可以被用到其他項目,django也能擁有不同的app。
項目要求:高內聚低耦合,兩個獨立模塊的聯繫越少越好。
2. 創建app
python manage.py startapp [app名稱]
app中的文件
- init.py 說明目錄是一個Python模塊
- models.py 寫和數據庫相關的內容
- views.py 接收請求,處理數據 與M和T進行交互
- tests.py 寫測試代碼的文件(暫時不需要關心)
- admin.py 網站後臺管理相關的
應用註冊
建立應用和項目之間的聯繫,需要對應用進行註冊。
修改 settings.py中的INSTALLED_APPS配置項
測試代碼:
utls.py文件定義和綁定不同的路由,這種方法和路由都在一起,後期會造成項目的代碼文件臃腫。
from django.contrib import admin
from django.urls import path
from django.http import HttpResponse
# django框架中寫視圖函數,必須要傳參request
def index(request):
return HttpResponse("hello world") # 返回值必須是 HttpResponse包裹住的類型
# django框架中寫視圖函數,必須要傳參request
def book(request):
return HttpResponse("圖書首頁") # 返回值必須是 HttpResponse包裹住的類型
urlpatterns = [
path('admin/', admin.site.urls), # django默認路由前面有/,不需要添加
path('', index), # 路由爲/,綁定的方法是index,此時不能加()
path('book/', book), # 路由爲book/,綁定的方法是book
]
3. 項目中真正的定義和綁定路由的方式
book/views.py 文件中定義路由的方法
from django.shortcuts import render
# Create your views here.
from django.http import HttpResponse
# django框架中寫視圖函數,必須要傳參request
def book(request):
return HttpResponse("圖書首頁") # 返回值必須是 HttpResponse包裹住的類型
# django框架中寫視圖函數,必須要傳參request
def index(request):
return HttpResponse("hello world") # 返回值必須是 HttpResponse包裹住的類型
utls.py文件綁定不同的路由
from django.contrib import admin
from django.urls import path
from django.http import HttpResponse
from book.views import book # 從其他app模塊中導入定義的路由方法
from book.views import index
urlpatterns = [
path('admin/', admin.site.urls), # django默認路由前面有/,不需要添加
path('', index), # 路由爲/,綁定的方法是book模塊中views.py的index方法
path('book/', book), # 路由爲book/,綁定的方法是book模塊中views.py的index方法
]
4. DEBUG模式
• 開啓了debug模式,那麼修改代碼,然後按下ctrl+s,那麼Django會自動重啓項目
• Django項目中代碼出現了問題,在瀏覽器中和控制檯中會打印錯誤信息
• 如果項目上線了,關閉debug模式,不然有很大的安全隱患,因爲項目錯誤信息會顯示在頁面上,不安全
• 關閉DEBUG模式,在setting文件中,將DEBUG = False