python的django写页面上传文件及遇到的问题小结
作者:咻_python 发布时间:2022-02-28 23:21:10
首先上结构
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


猜你喜欢
- 最近在做项目的时候经常会用到定时任务,由于我的项目是使用Java来开发,用的是SpringBoot框架,因此要实现这个定时任务其实并不难。后
- expandtabs()方法返回制表符,即该字符串的一个副本。 '\t'已经使用的空间,可选择使用给定的tabs
- 这是我记得的问题,基本都没答上来,大家知道的教教小弟,咱不能再不会了 1.在js里类的继承一般是类抄写和原型继承混合使用,在extjs的ex
- 这篇文章主要介绍了python文字转语音实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友
- 下面是在深度学习数据集处理过程中可能会用到的一个小程序,帮助我们根据图片文件的名字来分开图片:import osimport shutilp
- 这几天在做一个数据集,由于不是很熟悉Linux下的命令,所以特地用了强大的python来做。我之前有一个数据集但是我只要里面名称带有comp
- 需要转载的小伙伴转载后请注明转载的地址需要用到的库from bs4 import BeautifulSoupimport requestsi
- 前言PyTorch是一个开源的深度学习框架,基础教学从开始安装学起,一步一个脚印。提示:以下是本篇文章正文内容,下面案例可供参考一、Pyor
- 1.什么是标准库(Standard Library)标准库指的是js的标准内置对象,是js这门语言本身初始时提供的在全局范围的对象2.Obj
- 本文实例讲述了js实现的星星评分功能函数。分享给大家供大家参考,具体如下:<!DOCTYPE html PUBLIC "-/
- 因为主键可以唯一标识某一行记录,所以可以确保执行数据更新、删除的时候不会出现张冠李戴的错误。当然,其它字段可以辅助我们在执行这些操作时消除共
- 先由exp把数据卸出到文件系统, 产生一个.dmp文件, 然后必要时再由imp将数据装入数据库. 对于一般中小型数据库来说, 全数据库的ex
- Git简单介绍Git是一个分布式版本控制软件,最初由Linus Torvalds创作,于2005年以GPL发布。最初目的是为更好地管理Lin
- 在网上我们常常看见一些注册表单的输入框部分并不是我们常见的矩形框,而是一条细线,很多朋友对此很感兴趣。其实要实现这样的效果并不困难,我们只要
- 1. 问题homebrew用以下命令安装pythonbrew install python3然后用以下命令查看python安装版本pytho
- 前言今天为大家介绍一个利用Python模拟登陆CSDN的案例,虽然看起来很鸡肋,有时候确会有大用处,在这里就当做是一个案例练习吧,提高自己的
- 通用用法但上图的字段名,类型需要根据不同接口填写,如某服务接口:因而对应的上传代码如下:# 输出参数:请求响应报文import reques
- 例如我要测试一个创建网络的接口,需要先拿token值,而获取token的接口请求成功后,将token存在了响应头headers,postma
- 该需求是一个真实的实战需求,如果你的公司在做题库类的系统,一定会涉及该方面的内容,所以收藏起来吧。需求简单描述如下所示:1.提取 Word(
- 如:获得 2015-03-01 日的前7天的日期 : select date_sub('2015-03-01',interv