как загрузить файл, используя flask -mysqldb? - PullRequest
0 голосов
/ 29 февраля 2020

Я пытаюсь загрузить файл в базу данных mysql, используя flask -mysqldb. В большинстве примеров в inte rnet используется flask -sqlalchemy, поэтому мне довольно сложно решить эту ошибку, так как я все еще плохо знаком с flask. Я знаю, что мне нужно объявить атрибут в этой строке [newFile = dataset (file.filename)]. Вот код:

Ошибка:

TypeError: dataset() takes 0 positional arguments but 1 was given

app.py

from flask import Flask, render_template, redirect, url_for, request, flash
from werkzeug.utils import secure_filename
from flask_mysqldb import MySQL

app = Flask(__name__)

mysql = MySQL(app)

#config MySQL
app.config['MYSQL_HOST'] = 'localhost'
app.config['MYSQL_USER'] = 'root'
app.config['MYSQL_PASSWORD'] = 'root'
app.config['MYSQL_DATABASE'] = 'myflaskapp'
app.config['MYSQL_CURSORCLASS'] = 'DictCursor'
app.config["UPLOADS"] = 'C:/Users/myproj/new/dataset'

#init MYSQL
mysql = MySQL(app)

@app.route('/')
def index():
    return render_template('index.html')

@app.route('/dataset', methods = ['POST'])
def dataset():
    if request.method == 'POST':
       #Get dataset
       file = request.files['dataset']
       file.save(secure_filename(file.filename))

       newFile = dataset(file.filename)

       #Create cursor
       cur = mysql.connection.cursor()

       #execute dataset query
       cur.execute("INSERT INTO dataset(dataname) VALUES(%s)", dataname)

       #commit to DB
       mysql.connection.commit()

       #close connection
       cur.close()

       flash('file uploaded successfully', 'success')
     return render_template('index.html', file = dataset)


if __name__ == '__main__':
   app.run(debug = True)

index. html

<div class="container">
    <h1>File Input</h1>
    <form method="POST" action="/dataset" enctype="multipart/form-data">
        <div class="form-group">
            <label for="inputFile">File input</label>
            <input type="file" name="dataset">
        </div>
        <button type="submit" class="btn btn-default">Submit</button>
    </form> 
</div>

I надеюсь, кто-то может помочь решить это для меня. Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...