Python CS50最终项目-由于表单方法错误,从html.site到flask的文件上载无法工作
最近我一直在努力完成CS50,但现在我正在努力完成我的最终项目。其中一个关键要素是允许用户从html网站上传图像,而图像将通过application.py进行进一步处理。总的来说,我会用烧瓶 不幸的是,这正是我一直在努力的地方。我尝试了所有我能找到的上传图片的方法,结果总是相似的,当按下提交按钮时,我收到一条内部服务器错误消息。我甚至从youtube或论坛上复制代码,这些代码在视频中运行良好,但在我的IDE中却没有。CS50 IDE是否通常会阻止文件上传 如果没有,我将问题隔离到下面的代码中,如果您能快速查看,我将不胜感激。也许这是一个我不明白的小问题 my application.py中的代码Python CS50最终项目-由于表单方法错误,从html.site到flask的文件上载无法工作,python,html,flask,file-upload,cs50,Python,Html,Flask,File Upload,Cs50,最近我一直在努力完成CS50,但现在我正在努力完成我的最终项目。其中一个关键要素是允许用户从html网站上传图像,而图像将通过application.py进行进一步处理。总的来说,我会用烧瓶 不幸的是,这正是我一直在努力的地方。我尝试了所有我能找到的上传图片的方法,结果总是相似的,当按下提交按钮时,我收到一条内部服务器错误消息。我甚至从youtube或论坛上复制代码,这些代码在视频中运行良好,但在我的IDE中却没有。CS50 IDE是否通常会阻止文件上传 如果没有,我将问题隔离到下面的代码中,如
from flask import Flask, render_template, request
app = Flask(__name__)
@app.route("/")
def index():
return render_template("index.html")
@app.route("/upload", methods=["POST"])
def upload():
file = request.files["inputFile"]
return file.filename
if __name__ == "__main__":
app.run(debug=True)
index.html中的代码
<!DOCTYPE html>
<html lang="en">
<head>
FILE UPLOAD EXAMPLE
</head>
<body>
<div class="container">
<h1>File Input</h1>
<form method="POST" action="/upload" enctype="multipart/form-data">
<div class="form-group">
<label for="inputFile">File input</label>
<input type="file" name="inputFile">
</div>
<button type="submit" class="btn btn-default">Submit</button>
</form>
</div>
</body>
文件上传示例
文件输入
文件输入
提交
我试图隔离这个问题,我发现一件事是,当按下submit按钮时,表单总是返回“GET”,而表单方法中专门定义了返回应该是“POST”
无论如何,非常感谢您提前提出的任何意见
最好的,
Martin当您的项目结构中有
模板
目录时,它就会工作
myproject/
__init__.py
app.py
templates/
index.html
这是因为Flask
的默认模板路径是templates
。
如果您想将其更改为“my_templates”的其他内容,则应在创建应用程序时覆盖它
app = Flask(__name__, template_folder='my_templates')
顺便说一句,没有真正的数据库/文件存储代码返回,因此它只返回文件名作为响应。当您的项目结构中有
模板
目录时,它会起作用
myproject/
__init__.py
app.py
templates/
index.html
这是因为Flask
的默认模板路径是templates
。
如果您想将其更改为“my_templates”的其他内容,则应在创建应用程序时覆盖它
app = Flask(__name__, template_folder='my_templates')
顺便说一句,没有真正的DB/文件存储代码返回,因此它只返回文件名作为响应。您看到的错误是什么,项目结构是什么样子的?代码的预期结果是什么?我可以看到它只返回提交的文件名。嗨,Shakel,谢谢您的帮助。在浏览器中,我看到一个简单的“500内部服务器错误”,在我的终端a 404中。您看到的错误是什么,项目结构是什么样子?代码的预期结果是什么?我可以看到它只返回提交的文件名。嗨,Shakel,谢谢您的帮助。在浏览器中,我看到一个简单的“500内部服务器错误”“,在我的终端a 404中。谢谢你的描述,但我实际上运行的是这个精确的结构。application.py文件位于项目文件夹中。这个文件夹还有一个子文件夹/模板,在那里我存储了index.htmltanks作为描述,但实际上我正在运行这个精确的结构。application.py文件位于项目文件夹中。这个文件夹还有一个子文件夹/模板,我在其中存储index.html