Python後臺開發Django(啓動)

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/

目錄介紹

工程目錄結構

無APP的測試頁面

在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對應關係
]

建立APP及基本操做

能夠實現多個模塊效果,如後臺管理、用戶登入等

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()),

 靜態文件(static)

存放一些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()
相關文章
相關標籤/搜索