2015-06-23 2 views
0

Я пытаюсь включить загрузку базового файла text/csv в мое веб-приложение, которое запускает флажок для обработки HTTP-запросов. Я попытался следовать примеру ребенка в документации на фляги, работающей на localhost here. Но когда я пытаюсь использовать этот код на своей странице, он, кажется, загружается, но потом просто зависает, и на самом деле мой фляжный сервер зависает, и мне нужно закрыть терминал, чтобы снова попробовать ... Ctrl + C даже не работает.Загрузка файла в python flask

исполняет run.py:

#!/usr/bin/env python 
from app import app 

if __name__ == '__main__': 
    app.run(host='0.0.0.0', port=5000, debug=False, use_reloader=False) 

и app является каталогом в том же каталоге, где run.py находится со следующим __init__.py:

import os 
from flask import Flask 
from werkzeug import secure_filename 

#Flask object initialization 
#app flask object has to be created before importing views below 
#because it calls "import app from app" 
UPLOAD_FOLDER = '/csv/upload' 
ALLOWED_EXTENSIONS = set(['txt', 'csv']) 

app = Flask(__name__) 
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER 

и вот мой views.py файла, который имеет все мои маршруты :

from flask import render_template, request, redirect, url_for 
from app import app 
import os 

#File extension checking 
def allowed_filename(filename): 
    return '.' in filename and filename.rsplit('.',1)[1] in ALLOWED_EXTENSIONS 

@app.route('/', methods=['GET', 'POST']) 
@app.route('/index.html', methods=['GET', 'POST']) 
def index(): 
    if request.method == 'POST': 
     submitted_file = request.files['file'] 
     if submitted_file and allowed_filename(submitted_file): 
      filename = secure_filename(submitted_file.filename) 
      submitted_file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename)) 
      return redirect(url_for('uploaded_file', filename=filename)) 

    return ''' 
    <!doctype html> 
    <title>Upload new File</title> 
    <h1>Upload new File</h1> 
    <form action="" method=post enctype=multipart/form-data> 
     <p><input type=file name=file> 
     <input type=submit value=Upload> 
    </form> 
    ''' 
+0

может кто-нибудь сказать мне, откуда взялась строка «uploaded_file»? – computingfreak

ответ

2

Проблема в том, что вы передаете неправильную вещь allowed_filename(). Вы должны проехать submitted_file.filename не submitted_file сам

+0

Вау, это было глупо, спасибо. – ministry

Смежные вопросы