Python后臺(tái)開發(fā)Django的教程詳解(啟動(dòng))
Django版本為:2.1.7
Python的web框架,MTV思想
MVC
Model(模板文件,數(shù)據(jù)庫(kù)操作) view(視圖模板文件 )controller(業(yè)務(wù)處理)
MTV
Model(模板文件,數(shù)據(jù)庫(kù)操作) template(視圖模板文件) view(業(yè)務(wù)處理)
安裝及訪問(wèn)
安裝
pip3 install django
創(chuàng)建目錄
如win:在需要?jiǎng)?chuàng)建目錄的文件夾按住shift+鼠標(biāo)右鍵打開命令行,創(chuàng)建dongjg工程目錄
C:\Users\東東\AppData\Local\Programs\Python\Python37\Scripts\django-admin.exe startproject dongjg
開啟服務(wù)
其中manage.py需對(duì)應(yīng)工程目錄
如果網(wǎng)站需要外部訪問(wèn)還需在工程目錄的settings.py文件中設(shè)置【ALLOWED_HOSTS = ["*"]】
python manage.py runserver 0.0.0.0:8000
訪問(wèn)測(cè)試
目錄介紹
工程目錄結(jié)構(gòu)

無(wú)APP的測(cè)試頁(yè)面
在urls.py中添加簡(jiǎn)單的測(cè)試頁(yè)面
訪問(wèn):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對(duì)應(yīng)關(guān)系
]
創(chuàng)建APP及基本操作
可以實(shí)現(xiàn)多個(gè)模塊效果,如后臺(tái)管理、用戶登入等
python manage.py startapp dongapp2
APP的目錄結(jié)構(gòu)
migrations文件夾 #數(shù)據(jù)庫(kù)操作記錄(表結(jié)構(gòu)修改記錄)
admin.py #Django的后臺(tái)管理頁(yè)
models.py #創(chuàng)建數(shù)據(jù)庫(kù)結(jié)構(gòu)
apps.py #當(dāng)前app的配置文件
views.py #業(yè)務(wù)代碼
tests.py #單元測(cè)試
路由對(duì)應(yīng)方法(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對(duì)應(yīng)關(guān)系
]
路由對(duì)應(yīng)類(CBV)
在dongapp2/ views.py
from django.views import View
from django.shortcuts import HttpResponse
from django.shortcuts import render #導(dǎo)入
class DongClass(View):
def get(self,requestx):#當(dāng)請(qǐng)求為get時(shí)進(jìn)入
#return HttpResponse(requestx.GET.get("gdax","無(wú)數(shù)據(jù)"))
return render(requestx, "loginx.html", {"dongx": 12}) # 返回文件
def post(self,requestx):#當(dāng)請(qǐng)求為POST時(shí)進(jìn)入
return HttpResponse(requestx.POST.get("user","無(wú)數(shù)據(jù)"))
在urls.py
path("cdong",views.DongClass.as_view()),
靜態(tài)文件(static)
存放一些css樣式、圖片、js代碼等
外部訪問(wèn)訪問(wèn):http://127.0.0.1:8000/static/img/an.png
在setting.py中,設(shè)置靜態(tài)文件存放位置

在模板HTML文件中使用
<link rel="stylesheet" href="static/dong.css" rel="external nofollow" >
數(shù)據(jù)獲取相關(guān)
表單提交測(cè)試:
在setting.py中注釋掉下面一句,即可通過(guò)表單添加【action="dong"】進(jìn)行數(shù)據(jù)提交,如果不注釋需參考CSR保護(hù)

獲取訪問(wèn)數(shù)據(jù)
#控制臺(tái)輸出所有的請(qǐng)求信息
for k,v in requestx.environ.items():
print(k,"----->",v)
print("你的設(shè)備基本信息:",requestx.environ.get("HTTP_USER_AGENT","w"))
print("你的IP地址:",requestx.environ.get("REMOTE_ADDR","w"))
xx=requestx.path_info #獲取url,如http://127.0.0.1:8000/x1/x2/xxxxcd3,輸出:/x1/x2/xxxxcd3
methodx = requestx.method #得到訪問(wèn)方式,輸出:GET POST
#userx1=requestx.POST["user"] #獲取POST值,如果name不存在會(huì)報(bào)錯(cuò)
userx2=requestx.POST.get("user","xxx") #獲取POST值,如果不存在則輸出xxx
響應(yīng)頭設(shè)置
# 本地頁(yè)面跳轉(zhuǎn)
from django.shortcuts import redirect # 導(dǎo)入
retx = redirect("dong/")
# 返回文件,并匹配值
from django.shortcuts import render #導(dǎo)入
retx= render(requestx, "loginx.html",{"dongkk1":"替換值1","dongkk2":"替換值2"})
#返回字符串
from django.shortcuts import HttpResponse
retx=HttpResponse("東小東【dongxiaodong】")
#設(shè)置響應(yīng)頭
retx["tttt"]="tttvvvvv"
return retx
復(fù)選框測(cè)試:
獲取數(shù)據(jù),獲取數(shù)據(jù)到一個(gè)列表中
listx=requestx.POST.getlist("boxd")
復(fù)選框
<input type="checkbox" name="boxd" value="1xx" >選項(xiàng)1 <input type="checkbox" name="boxd" value="xx2" >選項(xiàng)2 ……..
文件上傳
fileobjx=requestx.FILES.get("dongfile")#得到文件對(duì)象
filenamex=fileobjx.name#得到文件名
filesize=fileobjx.size#文件大小
f=open("static/img/"+filenamex,"wb")#創(chuàng)建新文件保存數(shù)據(jù)
for datax in fileobjx.chunks():#接收數(shù)據(jù),可以不用寫.chunks(),默認(rèn)會(huì)調(diào)用
f.write(datax)
f.close()
總結(jié)
以上所述是小編給大家介紹的Python后臺(tái)開發(fā)Django的教程詳解(啟動(dòng)),希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- python實(shí)現(xiàn)爬山算法的思路詳解
- Python使用Pickle模塊進(jìn)行數(shù)據(jù)保存和讀取的講解
- Python爬取數(shù)據(jù)保存為Json格式的代碼示例
- Python匿名函數(shù)及應(yīng)用示例
- python3實(shí)現(xiàn)表白神器
- 詳解python配置虛擬環(huán)境
- 從0開始的Python學(xué)習(xí)016異常
- Python字符串匹配之6種方法的使用詳解
- Python面向?qū)ο髮?shí)現(xiàn)一個(gè)對(duì)象調(diào)用另一個(gè)對(duì)象操作示例
- Python中使用logging和traceback模塊記錄日志和跟蹤異常
相關(guān)文章
Pycharm遠(yuǎn)程調(diào)試原理及具體配置詳解
這篇文章主要介紹了Pycharm遠(yuǎn)程調(diào)試原理及具體配置詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08
allure結(jié)合python生成測(cè)試報(bào)告教程
這篇文章主要介紹了allure結(jié)合python生成測(cè)試報(bào)告教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06
淺談pycharm導(dǎo)入pandas包遇到的問(wèn)題及解決
這篇文章主要介紹了淺談pycharm導(dǎo)入pandas包遇到的問(wèn)題及解決方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06
pandas.DataFrame.from_dict直接從字典構(gòu)建DataFrame的方法
本文主要介紹了pandas.DataFrame.from_dict直接從字典構(gòu)建DataFrame的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06
python2 與python3的print區(qū)別小結(jié)
這篇文章主要介紹了python2 與python3的print區(qū)別小結(jié),需要的朋友可以參考下2018-01-01
python如何獲取apk的packagename和activity
這篇文章主要介紹了python如何獲取apk的packagename和activity,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-01-01
pandas如何將表中的字符串轉(zhuǎn)成數(shù)值型
在用pd.read_csv讀數(shù)據(jù)時(shí),將要轉(zhuǎn)換數(shù)據(jù)類型的列名和類型名構(gòu)成字典,傳給dtype,怎么轉(zhuǎn)換呢,下面小編給大家分享下pandas將表中的字符串轉(zhuǎn)成數(shù)值型,感興趣的朋友一起看看吧2023-02-02

