Flask выдает ошибку в функции run_wsgi_app - PullRequest
0 голосов
/ 18 мая 2019

Я настраиваю свое первое приложение Flask, и я следовал документации от http://flask.pocoo.org/docs/1.0/patterns/sqlite3/.

Мой код app.py выглядит следующим образом:

from flask import Flask, g, render_template, request, jsonify
import sqlite3

app = Flask(__name__)

DATABASE = 'sql_db.db'

@app.route("/")

def get_db():
    db = getattr(g, '_database', None)
    if db is None:
        db = g._database = sqlite3.connect(DATABASE)
    db.row_factory = sqlite3.Row

    return db

@app.teardown_appcontext
def close_connection(exception):
    db = getattr(g, '_database', None)
    if db is not None:
        db.close()

def index():
    return 'It works!'

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

В функции индекса,Я сделаю несколько запросов и создам шаблон, но я не могу заставить этот основной код работать.Я получаю следующую ошибку:

File ".../venv/lib/python2.7/site-packages/werkzeug/test.py", line 923, in run_wsgi_app
app_rv = app(environ, start_response)
TypeError: function takes exactly 1 argument (2 given) 
The view function did not return a valid response. The return type must be a string, tuple, Response instance, or WSGI callable, but it was a Connection.

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 18 мая 2019

У вас @app.route("/") в неправильном месте.Это должно быть до def index().

@app.route("/")
def index():
    return 'It works!'

Вы даже можете увидеть это в документе по вашей ссылке: http://flask.pocoo.org/docs/1.0/patterns/sqlite3/

0 голосов
/ 18 мая 2019

это работает для меня, дайте мне знать, если это работает.

Код:

from random import randint
from time import strftime
from flask import Flask, render_template, flash, request
from wtforms import Form, TextField, TextAreaField, validators, StringField, SubmitField
from sklearn import tree
import mysql.connector
import pymysql

DEBUG = True
app = Flask(__name__, static_url_path='', static_folder='', template_folder='templates')
app.config.from_object(__name__)
app.instance_path, '/', ''
# app.config['SECRET_KEY'] = 'SjdnUends821Jsdlkvxh391ksdODnejdDw'
app.config['SECRET_KEY'] = 'owieihfwuefgw98rgw8o73rg7wgfwfgw87'

@app.route("/", methods=['GET', 'POST'])
def index():

    return render_template('index.html', name = "nothing")

if __name__ == "__main__":
    app.run(host='127.0.0.1', port=8080)

Я думаю, что вам нужно (app.run (host = '127.0.0,1 ', порт = 8080)) но я не уверен

Удачного кодирования

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