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ù)處理)
安裝及訪問
安裝
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)站需要外部訪問還需在工程目錄的settings.py文件中設(shè)置【ALLOWED_HOSTS = ["*"]】
python manage.py runserver 0.0.0.0:8000
訪問測(cè)試
目錄介紹
工程目錄結(jié)構(gòu)
無APP的測(cè)試頁(yè)面
在urls.py中添加簡(jiǎn)單的測(cè)試頁(yè)面
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","無數(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","無數(shù)據(jù)"))
在urls.py
path("cdong",views.DongClass.as_view()),
靜態(tài)文件(static)
存放一些css樣式、圖片、js代碼等
外部訪問訪問: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中注釋掉下面一句,即可通過表單添加【action="dong"】進(jìn)行數(shù)據(jù)提交,如果不注釋需參考CSR保護(hù)
獲取訪問數(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 #得到訪問方式,輸出: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ì)大家有所幫助,如果大家有任何疑問請(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)試原理及具體配置詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08allure結(jié)合python生成測(cè)試報(bào)告教程
這篇文章主要介紹了allure結(jié)合python生成測(cè)試報(bào)告教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06淺談pycharm導(dǎo)入pandas包遇到的問題及解決
這篇文章主要介紹了淺談pycharm導(dǎo)入pandas包遇到的問題及解決方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-06-06pandas.DataFrame.from_dict直接從字典構(gòu)建DataFrame的方法
本文主要介紹了pandas.DataFrame.from_dict直接從字典構(gòu)建DataFrame的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06python2 與python3的print區(qū)別小結(jié)
這篇文章主要介紹了python2 與python3的print區(qū)別小結(jié),需要的朋友可以參考下2018-01-01python如何獲取apk的packagename和activity
這篇文章主要介紹了python如何獲取apk的packagename和activity,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-01-01pandas如何將表中的字符串轉(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