Я создаю веб-сайт, используя flask для окончательного проекта CS50x, и я хотел, чтобы мои пользователи могли добавлять изображения в свои профили. Поэтому я установил следующее приложение basi c, чтобы проверить его функциональность:
application.py
import os
from flask import *
app = Flask(__name__)
UPLOAD_FOLDER = 'uploads'
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
@app.route('/')
def upload():
return render_template("file_upload_form.html")
@app.route('/upload', methods = ['POST'])
def upload():
if request.method == 'POST':
file = request.files['file']
file.save(os.path.join(app.config['UPLOAD_FOLDER'], "test.jpg"))
return redirect("/")
file_upload_form. html
<html>
<head>
<title>Upload</title>
</head>
<body>
<form action = "/upload" method = "post" enctype="multipart/form-data">
<input type="file" name="file" />
<input type = "submit" value="Upload">
</form>
</body>
</html>
После тестирования я обнаружил, что для большинства загруженных мною файлов он выдает 500 Internal Ошибка сервера без отслеживания или чего-то еще. Однако работали два изображения - оба в формате JPEG и оба небольших файла (менее 100 КБ на диске). Я не могу понять, почему одни изображения работают, а другие нет. В идеале я бы хотел, чтобы мой веб-сайт постоянно обрабатывал изображения.
Есть какой-нибудь совет, где я ошибаюсь? Спасибо
============== РЕДАКТИРОВАТЬ ==================
редмицелл любезно указал, что у меня есть две функции с одинаковым именем - извините за это! Однако проблема не устранена.
import os
from flask import *
app = Flask(__name__)
UPLOAD_FOLDER = 'uploads'
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
@app.route('/')
def myindex():
return render_template("file_upload_form.html")
@app.route('/upload', methods = ['POST'])
def upload():
if request.method == 'POST':
file = request.files['file']
file.save(os.path.join(app.config['UPLOAD_FOLDER'], "test.jpg"))
return redirect("/")
if __name__ == "__main__":
app.run(debug=True)
Терминал выводит следующее:
- Serving Flask app "application.py" (отложенная загрузка)
- Environment : development
- Режим отладки: включен
- Запускается https://e08f1ea9-40e0-458c-8c38-6f7f5b5fb160-ide.cs50.xyz: 8080 / (Для выхода нажмите CTRL + C)
- Перезапуск со статом
- Отладчик активен!
- PIN-код отладчика: 113-512-723 192.168.239.158 - - [06 августа 2020 21:17:11] «GET / HTTP / 1.0» 200 -
Таким образом, даже при включенном режиме отладки он не дает мне никакой обратной связи.