目的:瞭解Django框架的做用和特色
html
做用:
python
Django的優點
mysql
快速開發linux
MVTweb
功能齊全redis
Django學習版本1.11.11sql
思考:用django仍是flask
數據庫
開發數據驅動web網站(複雜業務邏輯)django
數據分析後的結果展現界面,flaskjson
快速成型應用上線,就用django
目的:瞭解什麼是MVC,MTV
思考:爲何要用設計模式
MVC:
M的全拼爲Model,主要封裝對數據庫層的訪問,對數據庫中的數據進行增、刪、改、查操做。
V全拼爲View,用於封裝結果,生成頁面展現的html內容
C的全拼爲Controller,用於接收請求,處理業務邏輯,與Model和View交互,返回結果
MVT:
M全拼爲Model,與MVC中M的功能相同,負責和數據庫交互,進行數據處理
V全拼爲View,與MVC中的C功能相同,接收請求,進行業務處理,返回應答
T全拼爲Template,與MVC中的V功能相同,負責封裝構造要返回的html(或者是json數據
)
目的:學會建立新的虛擬環境
win10安裝
# 方法1:win10 pip install virtualenv pip install virtualenvwrapper -win
linux安裝
# 方法2:linux pip3 install virtualenvwrapper # python版本管理工具(虛擬環 境管理) mkdir $HOME/.virtualenvwrapper.sh # 把全部虛擬環境指定到一個目 錄文件夾下存放 find / -name virtualenvwrapper.sh # 查找執行腳本路徑,添加到 ~/.bashrc vim ~/.bashrc # 修改bash配置文件 ''' export WORKON_HOME=$HOME/.virtualenvs # python虛擬環境安裝位置 VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3 # python真實環境 source /usr/local/bin/virtualenvwrapper.sh ''' source ~/.bashrc # 執行virtualenvwrapper安裝腳本
virtualenvwrapper使用命令
mkvirtualenv test1 # 建立虛擬環境 mkvirtualenv test2env -p python3 lsvirtualenv # 查看虛擬環境 workon test1 # 進入虛擬環境 deactivate # 退出虛擬環境 rmvirtualenv test1 # 刪除虛擬環境 pip list # 查看虛擬環境下的安裝包
pip命令基本使用
pip pip install # 安裝依賴包 pip uninstall # 卸載依賴包 pip list # 查看已經安裝的依賴包 pip freeze > requirements.txt # 導出依賴包 pip install -r requirements.txt # 從文件安裝依賴包
目的:可以經過django的命令建立工程
過程:
1.進入到虛擬環境
2.建立項目:django-admin startproject (項目名字)
3.進入到manage.py 所在的文件夾
4.啓動項目:python manage.py runserver
注意點:
若是不指定,django默認端口8000
也能夠指定:python manage.py runserver ip:port
目的:可以使用django中的命令來建立子應用
過程:
1.進入到manage.py所在的同級文件夾
2.建立子應用:python manage.py startapp (子應用名稱)
三步完成子應用建立:
1.註冊子應用
2.建立app下的urls文件
3.引入子路由
url(r'^子路由前綴', include('子應用的模塊名.urls'))```
目的:可以在子應用中編寫視圖函數helloworld
過程:
- 1.在views文件中編寫視圖函數 ```python def hello(request): return http.HttpResponse('hello world') ``` - 2.建立urls.py文件中編寫子應用路由 ```python from django.conf.urls import url from demoapp import views urlpatterns = [ url(r'^helloworld/$', views.hello), ] ``` - 3.將子應用的的路由,註冊到根應用的urls中 ```python from django.conf.urls import url, include from django.contrib import admin urlpatterns = [ ... url(r'^demoapp/', include('demoapp.urls')) ] ```
注意點:
目的:知道常見的配置做用便可
常見的配置有:
BASE_DIR:項目在操做系統中的絕對路徑
DEBUG:調試模式,默認是True
LANGUAGE_CODE: zh-hans中文
TIME_ZONE: Asia/Shanghai 中國時間
LANGUAGE_CODE = 'en-us' # zh-hans USE_I18N = True # 國際化, 多語言 TIME_ZONE = 'UTC' # Asia/Shanghai USE_L10N = True # 時間相關, 時間顯示格式, 中文時間格式 xxxx年xx月xx日 21:21:21 USE_TZ = True # 時間相關, 使用時區時間, 若是發現時間差8個小時,就查看這個配置
注意點:
目的:在django中如何配置靜態文件的訪問地址和文件夾
配置:
STATIC_URL:靜態資源的訪問路徑,默認是/static/
STATICFILES_DIRS:靜態資源的文件夾,而且是一個列表。
注意點:
目的:在瀏覽器訪問服務器的時候,根應用的地址,子應用的地址是如何進行匹配的
格式1:基本匹配, 從上到下
格式2:匹配混亂問題, 有路由覆蓋的問題, 建議用path方法
格式3:
子應用地址後面的 / 問題, 建議你們寫的時候都加上
在訪問的時候,瀏覽器自動會定向到帶有/的地址上面去,這樣在訪問的時候無論是否攜帶/, 都能訪問。
目的:可以在地址中編寫正則匹配
過程:
1.格式1:不指定正則匹配的名字:/hello/([a-z]+)/(\d+)
/hello/xxxx/45345/
按照順序依次匹配,傳遞參數
2.格式2:指定正則的名字:/hello/(?P<name>[a-z]+)/(?P<name>\d+)
目的:經過request對象,獲取查詢參數
過程:
request.GET:是一個查詢字典
request.GET.get(key) # 獲取單個key,value
request.GET.getlist(key) # 獲取單個key,對應的多個value,獲得的是list列表。
目的:獲取request獲取表單,及非表單提交的非查詢參數數據
常見的請求方式有:POST,PUT,DELETE,PATCH
請求體中的數據, 一類是json, 一類是表單數據
request.POST:獲取表單數據(會把body的內容,解析一份, 解析成一個查詢字典)
request.body:獲取json數據
# 1.拿到bodyjson數據 body_json = request.body.decode() # 2. 解析json數據 body_dict = json.loads(body_data)
Post, put都須要處理請求體, delete能夠沒有請求體
post, 經過請求頭中的content-type字段來區分格式
表單格式: name=zhangsan&age=18
json格式: '{"name":"zhangsan", "age":18}'
POST http://localhost:8000/app1/post/ Content-Type: application/x-www-form-urlencoded name=lisi&age=18 ### POST http://localhost:8000/app1/post/ Content-Type: application/json {"name":"lisi","age": 18} ###
注意