Django版本爲:2.1.7css
Python的web框架,MTV思想html
MVCpython
Model(模板文件,數據庫操做) view(視圖模板文件 )controller(業務處理)web
MTV數據庫
Model(模板文件,數據庫操做) template(視圖模板文件) view(業務處理)django
安裝app
pip3 install django
建立目錄框架
如win:在須要建立目錄的文件夾按住shift+鼠標右鍵打開命令行,建立dongjg工程目錄post
C:\Users\東東\AppData\Local\Programs\Python\Python37\Scripts\django-admin.exe startproject dongjg
開啓服務單元測試
其中manage.py需對應工程目錄
若是網站須要外部訪問還需在工程目錄的settings.py文件中設置【ALLOWED_HOSTS = ["*"]】
python manage.py runserver 0.0.0.0:8000
訪問測試
http://127.0.0.1:8000/
工程目錄結構
在urls.py中添加簡單的測試頁面
訪問:http://127.0.0.1:8000/dong
from django.contrib import admin from django.urls import path #新建處理方法 from django.shortcuts import HttpResponse def homex(requestx): return HttpResponse("東小東【dongxiaodong】") urlpatterns = [ path('admin/', admin.site.urls), path("dong",homex),#添加URL對應關係 ]
能夠實現多個模塊效果,如後臺管理、用戶登入等
python manage.py startapp dongapp2
APP的目錄結構
migrations文件夾 #數據庫操做記錄(表結構修改記錄)
admin.py #Django的後臺管理頁
models.py #建立數據庫結構
apps.py #當前app的配置文件
views.py #業務代碼
tests.py #單元測試
路由對應方法(FBV):
在dongapp2/ views.py
from django.shortcuts import HttpResponse def homex(requestx): return HttpResponse("東小東【dongxiaodong】")
在urls.py
from django.contrib import admin from django.urls import path from dongapp2 import views urlpatterns = [ path('admin/', admin.site.urls), path("dong",views.homex),#添加URL對應關係 ]
路由對應類(CBV)
在dongapp2/ views.py
from django.views import View from django.shortcuts import HttpResponse from django.shortcuts import render #導入 class DongClass(View): def get(self,requestx):#當請求爲get時進入 #return HttpResponse(requestx.GET.get("gdax","無數據")) return render(requestx, "loginx.html", {"dongx": 12}) # 返回文件 def post(self,requestx):#當請求爲POST時進入 return HttpResponse(requestx.POST.get("user","無數據"))
在urls.py
path("cdong",views.DongClass.as_view()),
存放一些css樣式、圖片、js代碼等
外部訪問訪問:http://127.0.0.1:8000/static/img/an.png
在setting.py中,設置靜態文件存放位置
在模板HTML文件中使用
<link rel="stylesheet" href="static/dong.css">
表單提交測試:
在setting.py中註釋掉下面一句,便可經過表單添加【action="dong"】進行數據提交,若是不註釋需參考CSR保護
獲取訪問數據
1 #控制檯輸出全部的請求信息 2 for k,v in requestx.environ.items(): 3 print(k,"----->",v) 4 print("你的設備基本信息:",requestx.environ.get("HTTP_USER_AGENT","w")) 5 print("你的IP地址:",requestx.environ.get("REMOTE_ADDR","w")) 6 xx=requestx.path_info #獲取url,如http://127.0.0.1:8000/x1/x2/xxxxcd3,輸出:/x1/x2/xxxxcd3 7 methodx = requestx.method #獲得訪問方式,輸出:GET POST 8 #userx1=requestx.POST["user"] #獲取POST值,若是name不存在會報錯 9 userx2=requestx.POST.get("user","xxx") #獲取POST值,若是不存在則輸出xxx
響應頭設置
1 # 本地頁面跳轉 2 from django.shortcuts import redirect # 導入 3 retx = redirect("dong/") 4 # 返回文件,並匹配值 5 from django.shortcuts import render #導入 6 retx= render(requestx, "loginx.html",{"dongkk1":"替換值1","dongkk2":"替換值2"}) 7 #返回字符串 8 from django.shortcuts import HttpResponse 9 retx=HttpResponse("東小東【dongxiaodong】") 10 #設置響應頭 11 retx["tttt"]="tttvvvvv" 12 return retx
複選框測試:
獲取數據,獲取數據到一個列表中
listx=requestx.POST.getlist("boxd")
複選框
<input type="checkbox" name="boxd" value="1xx" >選項1 <input type="checkbox" name="boxd" value="xx2" >選項2 ……..
文件上傳
1 fileobjx=requestx.FILES.get("dongfile")#獲得文件對象 2 filenamex=fileobjx.name#獲得文件名 3 filesize=fileobjx.size#文件大小 4 f=open("static/img/"+filenamex,"wb")#建立新文件保存數據 5 for datax in fileobjx.chunks():#接收數據,能夠不用寫.chunks(),默認會調用 6 f.write(datax) 7 f.close()