在 PyCharm 里創建 Django 項目
相對于Python的其他Web框架,Django的功能是最完整的,本節將帶領大家在 PyCharm 里 創建一個Django 項目,了解框架中各個組件的應用以及如何調試等相關功能。
1. Django 框架特點
Django定義了服務發布、路由映射、模板編程、數據處理的一整套功能。這也意味著Django模塊之間緊密耦合,開發者需要學習Django自己定義的這一整套技術。
Django是遵循MVC架構的Web開發框架,其主要由以下幾部分組成。
- 管理工具(Management):一套內置的創建站點、遷移數據、維護靜態文件的命令工具;
- 模型(Model):提供數據訪問接口和模塊,包括數據字段、元數據、數據關系等的定義及操作;
- 視圖(View):Django 的視圖層封裝了 HTTP Reques t和 Response 的一系列操作和數據流,其主要功能包括URL映射機制、綁定模板等;
- 模板(Template):是一套 Django 自己的頁面渲染模板語言,用若干內置的 tags 和 filters 定義頁面的生成方式;
- 表單(Form):通過內置的數據類型和控件生成 HTML 表單;
- 管理站(Admin):通過聲明需要管理的 Model,快速生成后臺數據管理網站。
2. 創建 Django 項目
主菜單 File -> New Project, 在左側列表選擇 Django, 然后選擇解釋器及定義相關路徑及名字,點擊 Create。
點擊創建之后,PyCharm 自動幫我們創建一個虛擬環境和安裝最新版的 Django。
文件創建完成后, 查看文件結構:
在一個項目里,可以增加多個 Django Application , 可以通過 Terminal 窗口 或者 Tools -> Run manage.py task 窗口
, 輸入 startapp App名字, 回車之后我們就能看到,我們的項目目錄里多出一個文件夾。
在 Terminal 窗口輸入下面的命令, 效果是一樣的。
python manage.py startapp myapp_two
此時僅僅是app創建完成,還需要在 settings.py
的 INSTALLD_APPS 列表中進行配置才能正常使用該app 應用:
3. 定義視圖函數與創建模板 template
3.1 定義視圖函數
視圖函數實際上定義一系列訪問頁面時的內容。比如在在 myapp -> views.py 文件加入下面代碼
from django.shortcuts import render
def home(request):
return render(request, 'home.html')
3.2 從視圖創建模板
打開 views.py
, “home.html" 處會有錯誤提示, 在建議信息列表中選擇 Create template home.html, 指定路徑后,會創建一個空的 home.html 文件。
在 home.html 里可以填加下面的內容:
<!DOCTYPE html>
<html>
<head>
<title>Welcome</title>
</head>
<body>
歡迎來到慕課WIKI
</body>
</html>
Tips : HTML,XHTML 與 XML 始終都是可被識別的模板類型,如果想增加新的,主菜單 PyCharm/File -> Preference /Settings -> Languages & Frameworks -> Template Language
可以為不同的模板語言增加更多模板類型。
3.3 在模板和視圖之間切換
在編輯中打開文件,點擊左側邊欄的圖標,就可以完成模板與視圖之間的切換。
4. 運行與調試
4.1 運行項目
1. 路由設置: 定義視圖函數相關的URL(網址) ,即規定訪問什么網址對應什么內容。
打開 urls.py
,按下面內容修改文件:
2. Django 是自帶后臺管理的,如果需要,需要初始化數據庫。在Tools -> Run manage.py task
窗口執行下面的命令
makemigrations
migrate
createsuperuser
相當于在 Terminal 窗口執行:
python manage.py makemigrations
python manage.py migrate
python manage.py createsuperuser
然后點擊運行按鈕,可以訪問home 頁,也可以訪問后臺管理系統。
也可運行命令 python manage.py runserver 8000
4.2 調試 Template
修改 view.py
與 home.html 代碼,方便查看調試效果。
from django.shortcuts import render
def home(request):
TutorialList = ["HTML", "CSS", "jQuery", "Python", "Django"]
return render(request, 'home.html', {'TutorialList': TutorialList})
home.html:
<!DOCTYPE html>
<html>
<head>
<title>Welcome</title>
</head>
<body>
歡迎來到慕課WIKI
教程列表:
</ul>
{% for i in TutorialList %}
<li>{{ i }}</li>
{% empty %}
<li>抱歉,列表為空</li>
{% endfor %}
</ul>
</body>
</html>
1. 修改 run/debug configuration , 改端口到 8123:
2. 在要調試的 template 文件里設置斷點, 點擊 Debug 按鈕,開始調試。相應的步進按鈕、Watches功能都是正常使用的,與調試 Python 代碼沒有什么區別:
5. 小結
本小節介紹了如何在 PyCharm 創建一個 Django 項目,包括創建視圖函數、模板,如何配置路由與調試模板文件等等,PyCharm 為支持 Django 框架提供的功能都不復雜,真正能用Django 框架創建 Web 項目 更多依賴于對框架各個組件及相關功能熟知程度,建議閱讀Django 官網文檔,按照官網提供的例子在 PyCharm 里實踐。