【发布时间】:2018-09-12 05:09:33
【问题描述】:
我正在尝试使用 mysql 连接使用烧瓶制作简单的登录应用程序,但是当我运行登录功能时,我在网络浏览器中收到 TypeError: an integer is required (got type str)
这是代码:
from flask import Flask, flash, redirect, render_template, request, session, abort
import os
from sqlalchemy.orm import sessionmaker
from sqlalchemy import create_engine
from flask_sqlalchemy import SQLAlchemy
from flask_mysqldb import MySQL
from wtforms import Form, StringField, TextAreaField, PasswordField, validators
from passlib.hash import sha256_crypt
from functools import wraps
app = Flask(__name__)
app.config['MYSQL_HOST'] = 'localhost'
app.config['MYSQL_USER'] = 'root'
app.config['MYSQL_DB'] = 'admin'
app.config['MYSQL_PORT'] = 3306
app.config['MYSQL_CURSORCLASS'] = 'DictCursor'
# init MYSQL
mysql = MySQL(app)
@app.route('/')
def home():
if not session.get('logged_in'):
return render_template('login.html')
else:
return "Hello Boss!"
@app.route('/login', methods=['POST'])
def do_admin_login():
cur = mysql.connection.cursor()
POST_USERNAME = str(request.form['username'])
POST_PASSWORD = str(request.form['password'])
result = cur.execute("SELECT * FROM users WHERE username = %s", [POST_USERNAME])
if result:
session['logged_in'] = True
cur.close()
else:
flash('wrong password!')
return home()
@app.route('/logout')
def logout():
session['logged_in']=False
return home()
if __name__ == "__main__":
app.secret_key = os.urandom(12)
app.run(debug=True)
图片错误
【问题讨论】:
-
MySQL 端口地址应为整数:
app.config['MYSQL_PORT'] = 5000 -
我已经改变了,我得到了一个不同的错误