# 第一節:第一個Django項目
# 第一個Django項目
## 創建`Django`項目:
### 用命令行的方式:
1. 創建項目:打開終端,使用命令:`django-admin startproject [項目名稱]`即可創建。比如:`django-admin startproject first_project`。
2. 創建應用(app):一個項目類似于是一個架子,但是真正起作用的還是`app`。在終端進入到項目所在的路徑,然后執行`python manage.py startapp [app名稱]`創建一個app。
### 用`pycharm`的方式:
用`pycharm`新建一個`Django`項目,新建項目的截圖如下:

使用`pycharm`創建完項目后,還是需要重新進入到命令行單獨創建`app`的。
## 運行Django項目:
1. 通過命令行的方式:`python manage.py runserver`。這樣可以在本地訪問你的網站,默認端口號是`8000`,這樣就可以在瀏覽器中通過`http://127.0.0.1:8000/`來訪問你的網站啦。如果想要修改端口號,那么在運行的時候可以指定端口號,`python manage.py runserver 9000`這樣就可以通過`9000`端口來訪問啦。另外,這樣運行的項目只能在本機上能訪問,如果想要在其他電腦上也能訪問本網站,那么需要指定`ip`地址為`0.0.0.0`。示例為:`python manage.py runserver 0.0.0.0:8000`。
2. 通過`pycharm`運行。直接點擊右上角的綠色箭頭按鈕即可運行。
## 項目結構介紹:
1. `manage.py`:以后和項目交互基本上都是基于這個文件。一般都是在終端輸入`python manage.py [子命令]`。可以輸入`python manage.py help`看下能做什么事情。除非你知道你自己在做什么,一般情況下不應該編輯這個文件。
2. `settings.py`:本項目的設置項,以后所有和項目相關的配置都是放在這個里面。
3. `urls.py`:這個文件是用來配置URL路由的。比如訪問`http://127.0.0.1/news/`是訪問新聞列表頁,這些東西就需要在這個文件中完成。
4. `wsgi.py`:項目與`WSGI`協議兼容的`web`服務器入口,部署的時候需要用到的,一般情況下也是不需要修改的。
## project和app的關系:
`app`是`django`項目的組成部分。一個`app`代表項目中的一個模塊,所有`URL`請求的響應都是由`app`來處理。比如豆瓣,里面有圖書,電影,音樂,同城等許許多多的模塊,如果站在`django`的角度來看,圖書,電影這些模塊就是`app`,圖書,電影這些`app`共同組成豆瓣這個項目。因此這里要有一個概念,`django`項目由許多`app`組成,一個`app`可以被用到其他項目,`django`也能擁有不同的`app`。
- Introduction
- 第一章:學前準備
- 第一節:虛擬環境
- 第二節:準備工作
- 第三節:Django介紹
- 第四節:URL組成部分
- 第二章:URL與視圖
- 第一節:第一個Django項目
- 第二節:視圖與URL分發器
- 第三章:模板
- 第一節:模板介紹
- 第二節:模板變量
- 第三節:常用標簽
- 第四節:常用過濾器
- 第五節:自定義過濾器
- 第七節:模版結構優化
- 第八節:加載靜態文件
- 第四章:數據庫
- 第一節:MySQL相關軟件
- 第二節:數據庫操作
- 第三節:ORM模型
- 第四節:模型常用字段
- 第五節:外鍵和表關系
- 第六節:增刪改查操作
- 第七節:查詢操作
- 第八節:QuerySet API
- 第九節:ORM模型遷移
- 第十節:ORM作業
- 第十一節:ORM作業參考答案
- 第十二節:Pycharm連接數據庫
- 第五章:視圖高級
- 第一節:限制請求method
- 第二節:頁面重定向
- 第三節:HttpRequest對象
- 第四節:HttpResponse對象
- 第五節:生成CSV文件
- 第六節:類視圖
- 第七節:錯誤處理
- 第六章:表單
- 第一節:表單概述
- 第二節:用表單驗證數據
- 第三節:ModelForm
- 第四節:文件上傳
- 第七章:cookie和session
- 第八章:上下文處理器和中間件
- 第一節:上下文處理器
- 第二節:中間件
- 第九章:安全
- 第一節:CSRF攻擊
- 第二節:XSS攻擊
- 第三節:點擊劫持攻擊
- 第四節:SQL注入
- 第十章:信號
- 第一節:什么是信號
- 第十一章:驗證和授權
- 第一節:概述
- 第二節:用戶對象
- 第三節:權限和分組
- 第十二章:Admin系統
- 第十三章:Django的緩存
- 第十四章:memcached
- 第十五章:Redis