web框架之Django(python3入門)
阿新 • • 發佈:2019-03-22
mac os x shortcut nal 括號 direct control == 美女 分開
一、初識Django
Django 是一個web框架 web框架的本質 - web框架的本質就是一個socket服務端 b/s架構:瀏覽器---服務器,本質也是c/s架構
二、HTTP協議
http請求協議: 請求首行: 請求的方法 空格 請求地址 空格 請求協議 GET /index HTTP/1.1\r\n 請求頭: (key:value的形式展現) ‘Connection: keep-alive\r\n Pragma: no-cache\r\n Cachehttp請求協議-Control: no-cache\r\n Upgrade-Insecure-Requests: 1\r\n User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36\r\n Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8\r\n Accept-Encoding: gzip, deflate, br\r\n Accept-Language: zh-CN,zh;q=0.9\r\n\r\n‘ 請求體: 可以攜帶data數據(向服務器發送的數據) 如:用戶名/密碼等信息
http響應協議: 響應首行: HTTP/1.1 200 OK \r\n 響應頭: key:value \r\n xx:xx \r\n yy:yy \r\n 響應體: 響應數據...http響應協議
三、Web框架簡介
把一個請求拆分成幾部分,每個部分幹相同的事
Python中的web框架:
Django:大而全的框架
flask:輕量級 微框架
Tornado:高性能的框架
四、Django的安裝和使用
- 安裝Django的三種方式:
1 在cmd窗口下:pip3 install django == 1.11.9
2 在pycharm的Terminal窗口下: pip3 install django == 1.11.9
3 在pycharm - setting中安裝,選擇版本號: 1.11.9
- 卸載Django 1 pip3 unistall django 2 在pycharm-setting中進行卸載
- 安裝完成後dgango後會在python36\Scripts,會多一個django-admin.exe
- 創建Django項目
命令行 django-admin startproject myfirstdjango(了解就行)
五、Django項目的目錄結構
- manage.py 項目入口 運行項目需要用到 - templates文件夾:放模板文件,放html模板 - 項目名的文件夾(*****現階段需要記住的) setting.py 項目配置文件(整個項目的配置信息) ***** urls.py 路由和函數的映射關系 ***** wsgi.py django框架幫咱寫的socket - app名字的文件夾 migrations 數據庫遷移相關的,記錄變化的文件 admin.py 後臺管理相關(知道就行) apps.py app的配置信息(app自己的配置信息) models.py 數據庫相關,函數取數據用的 ***** tests.py 測試相關的 views.py 視圖(業務邏輯) ***** - app的概念(每個django項目至少有一個app!!!) 大學 ---- django項目 xx學院 ---- 一個個的app 創建app的命令(新建app01) python3 manage.py startapp app01目錄結構
六、運行Django項目
python3 manage.py runserver 重點***** 安裝django 創建django項目 創建app 運行項目第一種方式-命令行
- pycharm中創建項目 輸入項目名稱+自定義app名稱+解釋器選擇
- pycharm中運行項目 綠色箭頭運行
第二種方式-用pycharm
七、Django框架的簡單使用
- django項目中重點需要關註的文件夾: - urls.py - views.py - models.pyDjango項目文件夾中重點關註的文件
1 在瀏覽器輸入 http://127.0.0.1/index 並在頁面顯示hello django > 首先在views.py中鍵入新手三件套 from django.shortcuts import render from django.shortcuts import HttpResponse from django.shortcuts import redirect > 其次在views.py中輸入index頁面的函數 def index(request): return HttpResponse(‘hello django‘) #可以向瀏覽器返回字符串 > 接著在urls.py中新增路由和函數的映射關系 from app01 import views urlpatterns = [ url(r‘^index/‘, views.index), ] > 接著點擊綠色箭頭運行該項目 > 最後打開瀏覽器輸入 http://127.0.0.1/index查看頁面顯示內容Django框架的簡單使用之一
2 在瀏覽器輸入 http://127.0.0.1/index 向瀏覽器返回一個頁面 > 首先在views.py中鍵入新手三件套 from django.shortcuts import render from django.shortcuts import HttpResponse from django.shortcuts import redirect > 其次在views.py中輸入index頁面的函數 def index(request): #render是一個方法,第一個參數傳request對象,第二個參數是模板文件的名字 return render(request,‘index.html‘) > 接著在templates文件夾中新建html頁面,命名問index.html,並在頁面中隨意寫一些內容 <body> <h1>django的index頁面</h1> <a href="https://baidu.com">點我看美女</a> </body> > 在瀏覽器輸入 http://127.0.0.1/index 查看結果Django框架的簡單使用之二
3 在瀏覽器輸入 http://127.0.0.1/index 重定向到www.baidu.com > 首先在views.py中鍵入新手三件套 from django.shortcuts import render from django.shortcuts import HttpResponse from django.shortcuts import redirect > 其次在views.py中輸入index頁面的函數 def index(request): # 返回重定向 # 1xx 接受的請求正在處理,信息性狀態碼 # 2xx 成功狀態碼 # 3xx 重定向狀態碼 # 4xx 客戶端錯誤狀態碼 # 5xx 服務器錯誤狀態碼 return redirect(‘https://www.baidu.com‘) > 在瀏覽器輸入 http://127.0.0.1/index 查看結果Django框架的簡單使用之三
八、Django框架層面分析
- 路由層: - 基本使用 # url是一個函數,函數參數,第一個參數是一個正則表達式 # 用戶請求的路徑只有匹配成功,才去執行後面的函數 url(r‘^index$,views.index)路由層
- 無名分組 url(r‘^index/(\d+)/(\d+)‘, views.index) 括號內的內容會被分組區分開,當作一個個參數,傳入到都好後面的views.index視圖函數中 視圖函數會接受這些參數無名分組
- 有名分組 url(r‘^index/(?P<cc>\d+)/(?P<ee>\d+)‘, views.index) 括號內的內容會被分組分出來,當作參數,以key:value的形式傳入後面的視圖函數 視圖函數會接受這些參數有名分組
- 反向解析 1 補充重定向 2 反向解析,通過名字,反解出名字對應的url地址 例1:應用在視圖函數中 urls.py url(r‘^test222/$‘, views.test,name=‘ttt‘) views.py from django.shortcuts import reverse def index(request): url = reverse(‘ttt‘) return redirect(url) 例2:應用在模板中 <a href="{% url ‘ttt‘ %}">點我看新美女</a>反向解析
- 路由分發 例如: 使用命令創建app02 python3 manage.py startapp app02 ### 註意,新建app一定要在setting.py中進行註冊 ### 註冊app,兩種方式都可以,官方推薦使用下面的第一種 找到INSTALLED_APPS = [],並在其中添加以下命令, 1 ‘app02.apps.App01Config‘, 2 ‘app02‘, 使用方式: 1 在項目文件夾的urls.py中,控制不同app的urls.py urlpatterns = [ url(r‘app01/‘,include(‘app01.urls‘)), #正則部分不能加結束符$ url(r‘app02/‘,include(‘app02.urls‘)), #正則部分不能加結束符$ ] 2 在app01文件夾中的urls.py中,控制本app的路由 urlpatterns = [ url(r‘^app01test/‘, views.test), ] 3 在app02文件夾中的urls.py中,控制本app的路由 urlpatterns = [ url(r‘^app02test/‘, views.test), #給該條路由重命名為ttt ] 4 在不同app的文件夾中的views.py文件中輸入定義test函數 5 在web頁面中輸入測試:http://127.0.0.1:8000/app01/app01test/ http://127.0.0.1:8000/app02/app02test/路由分發
- django2.0版本的path - django2.x的re_path就是1.x的url - django2.x的path是新增的功能 path(‘準確路徑‘,view.test,name=‘ttt‘)Django2.x版本的path了解
web框架之Django(python3入門)