網站首頁 編程語言 正文
首先上結構
mynode -> app5 -> urls.py & views.py
| -> templates -> 5 -> upload.html
| -> mynode -> urls.py
| -> media
按照順序,先上app5/urls.py
from django.urls import path
from app5 import views as v5
app_name = 'app5'
urlpatterns = [
path('upload_file/', v5.upload_file, name = 'upload_file'),
path('show_upload/', v5.show_upload, name = 'show_upload'),
]
path('upload_file/', v5.upload_file, name = 'upload_file'),指定upload_file跳轉功能
path('show_upload/', v5.show_upload, name = 'show_upload'),指定show_upload跳轉功能
接著是app5/view.py
from django.shortcuts import render
from django.http import HttpResponse
import os
def show_upload(request):
return render(request, '5/upload.html')
def upload_file(request):if request.method == 'POST':
get_file = request.FILES.get('myfile',None)
if get_file:
path = 'media/uploads'
if not os.path.exists(path):
os.makedirs(path)
dest = open(os.path.join(path,get_file.name),'wb+')
for chunk in get_file:
dest.write(chunk)
dest.close()
return HttpResponse('上傳文件成功!')
else:
return HttpResponse('沒有上傳文件!')
首先寫了一個show_upload方法,跳轉到初始頁面
接下來是upload_file方法,首先判斷請求方式是否是POST,接下來獲取上傳文件,指定上傳路徑,如果路徑不存在就創建一個,把上傳文件內容寫到指定路徑下
再來是templates/5/upload.html
<!--<from enctype="multipart/form-data" action="{% url 'app5:upload_file' %}" method="post">--> //這個是錯誤的
<form enctype="multipart/form-data" action="{% url 'app5:upload_file' %}" method="post">
{% csrf_token %}
<input type="file" name="myfile" />
<br/>
<input type="submit" value="upload_file" />
</form>
<!--</from>--> //這個是錯誤的
指定了一個action,{% url 'app5:upload_file' %},app5是app5/urls.py中的app_name,upload_file則是要跳轉連接,同時因為url已經指定這個連接要跳轉的views中的功能,因此這個就是app5/view.py里面的upload_file方法
這個頁面展示是正常的,但是在寫好功能以后,無論怎么點提交,都沒法跳轉到upload_file功能
仔細看表單的名稱<from,這個坑我踩了好久,后來仔細看了下,應該是form,改了之后就好使了
最后是mynode/urls.py
from django.contrib import adminfrom django.urls import path,include
urlpatterns = [
path('admin/', admin.site.urls),
path('app5/', include('app5.urls')),
]
指定app5跳轉到app5/urls.py
最后打開瀏覽器,輸入鏈接http://localhost:8000/app5/show_upload/
選擇要上傳的文件,點擊upload_file按鈕
這里跳轉到upload_file路徑,并且顯示上傳文件成功
原文鏈接:https://www.cnblogs.com/xiu123/archive/2022/08/30/16640426.html
相關推薦
- 2022-04-18 Python裝飾器實現函數運行時間的計算_python
- 2022-11-16 從Context到go設計理念輕松上手教程_Golang
- 2022-09-10 親自教你在netty中使用TCP協議請求DNS服務器的詳細過程_服務器其它
- 2024-01-27 Apache POI 及 alibaba EasyExcel使用
- 2022-11-10 C語言宏定義容易認不清的盲區梳理_C 語言
- 2023-05-09 React組件三大核心屬性State?props?Refs介紹_React
- 2021-12-13 C語言數組學習之特殊矩陣的壓縮存儲_C 語言
- 2022-09-27 詳解adb工具的基本使用_Android
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支