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
猜你喜欢
- ExpiresAbsolute 属性指定缓存于浏览器中的页的到期日期和时间语法Response.ExpiresAbsolute [
- zip文件是我们经常使用的打包格式之一,python解压和压缩zip效率非凡。 python解压zip文档:#/usr/bin/python
- Truncate是SQL中的一个删除数据表内容的语句,用法是:TRUNCATE TABLE [Table Name]。下面是对Truncat
- 前言嗨喽!大家好呀,这里是魔王~雪球,聪明的投资者都在这里 - 4300万投资者都在用的投资社区,沪深港美全球市场实时行情,股票基金债券免费
- 数字序号① ①② ②③ &
- 本文实例讲述了python在Windows8下获取本机ip地址的方法。分享给大家供大家参考。具体实现方法如下:import socket h
- Python由Guido Van Rossum发明于90年代初期,是目前最流行的编程语言之一,因其语法的清晰简洁我爱上了Python,其代码
- 最近用python写了一个远程监控的程序,主要功能有:1.用邮件控制所以功能2.可以对屏幕截图,屏幕截图发送到邮箱3.可以用摄像头获取图片,
- PHP现在推出5.3.0版本了,不过下载的时候有几个不同版本选择。那就是VC6 X86和VC9 X86。首先我来解答:VC6是什么?VC6就
- 环境win10Python:3.6.7Django:2.2.7运行效果1、创建 Django 项目# 创建Download项目django-
- 准备写一个操作Excel脚本却在导入包的时候出现了一个小问题导入包from Tkinter import Tkfrom time impor
- PHP 中文工具类,支持汉字转拼音、拼音分词、简繁互转。PHP Chinese Tool class, support Chinese pi
- Flask框架是Python开发的一个基于Werkzeug和Jinja 2的web开发微框架,它的优势就是极其简洁, 但又非常灵活,而且容易
- 记录了Windows安装python3.7的详细过程,供大家参考,具体内容如下1. 在python的官网下载python对应版本:官网地址6
- PL/SQL是由Oracle公司对标准SQL进行扩展,专用于Oracle数据库中程序设计的专用语言,属第三代过程式程序设计语言。从Oracl
- 本文实例讲述了Python计算已经过去多少个周末的方法。分享给大家供大家参考。具体如下:def weekends_between(d1,d2
- 操作方法如下所示:File-->Settings-->Editor-->Color&Fonts-->Lang
- 本来而言,这个问题网上很多资料,但是网上资料都是复制来复制去,很多话大家其实都不是很明白的,或者拿着官方文档翻译过来的,让人看的非常迷糊。今
- 本文实例讲述了Python实现的银行系统模拟程序。分享给大家供大家参考,具体如下:银行系统模拟程序1、概述使用面向对象思想模拟一个简单的银行
- 1 conda介绍conda是一个python的包管理器,用来管理、安装、更新python的包和相关的依赖。另外,conda可以为特定任务创