我正在使用的代码如下。我想知道如何将我的登录页面重定向到主页。我已经尝试了很多事情,例如在mysql中重新创建数据库,一次又一次地重写代码,但是仍然在我输入正确的登录详细信息时,该页面返回到登录页面,并且不会像应有的那样重定向到主页。 。
from flask import Flask, render_template, request, redirect, url_for, session
from flask_mysqldb import MySQL
import MySQLdb.cursors
import re
app=Flask(__name__)
app.config['MYSQL_HOST'] = 'remotemysql.com'
app.config['MYSQL_USER'] = '7CNYamZi6G'
app.config['MYSQL_PASSWORD'] = 'QgKp7RwBhr'
app.config['MYSQL_DB'] = '7CNYamZi6G'
mysql = MySQL(app)
@app.route("/")
def main():
return render_template('index.html')
@app.route('/adm_login', methods=['GET', 'POST'])
def adm_login():
msg = ''
if request.method == 'POST' and 'adm_user' in request.form and 'adm_pass' in request.form:
adm_user = request.form['adm_user']
adm_pass = request.form['adm_pass']
cursor = mysql.connection.cursor(MySQLdb.cursors.DictCursor)
cursor.execute('SELECT * FROM user_mgmt WHERE adm_user = %s AND adm_pass = %s', (adm_user, adm_pass))
account = cursor.fetchone()
if account:
session['loggedin'] = True
session['id'] = account['adm_id']
session['username'] = account['adm_user']
return 'Logged in successfully!'
else:
msg = 'Incorrect username/password!'
return render_template('adm_login.html', msg=msg)
@app.route('/home')
def home():
if 'loggedin' in session:
return render_template('home.html', username=session['username'])
return redirect(url_for('adm_login'))
@app.route('/profile')
def profile():
if 'loggedin' in session:
cursor = mysql.connection.cursor(MySQLdb.cursors.DictCursor)
cursor.execute('SELECT * FROM 7CNYamZi6G.user_mgmt WHERE adm_id = %s', [session['id']])
account = cursor.fetchone()
return render_template('profile.html', account=account)
return redirect(url_for('adm_login'))
@app.route('/admin_show', methods=['GET', 'POST'])
def admin_show():
show = ''
if request.method == 'POST' and 'from_date' in request.form and 'through_date' in request.form:
from_date = request.form['from_date']
through_date = request.form['through_date']
cur = mysql.connection.cursor(MySQLdb.cursors.DictCursor)
cursor.execute('SELECT * FROM ach_mgmt WHERE Date_Ach BETWEEN %s AND %s', (from_date, through_date))
show = cursor.fetchall()
return render_template('admin_show.html', show=show)
@app.route('/delete/<string:track_id>', methods = ['GET'])
def delete(track_id):
flash("Record Has Been Deleted Successfully")
cur = mysql.connection.cursor()
cur.execute("DELETE FROM ach_mgmt WHERE id=%s", (track_id,))
mysql.connection.commit()
return redirect(url_for('admin_show'))
@app.route('/update/<string:track_id>',methods=['POST','GET'])
def update(track_id):
if request.method == 'POST':
track_id = request.form['track_id']
Field_Ach = request.form['Field_Ach']
Name_Ach = request.form['Name_Ach']
Level_Ach = request.form['Level_Ach']
Position_Ach = request.form['Position_Ach']
Date_Ach = request.form['Date_Ach']
Remarks = request.form['Remarks']
cur = mysql.connection.cursor()
cur.execute("UPDATE ach_mgmt SET Field_Ach=%s, Name_Ach=%s, Level_Ach=%s, Position_Ach=%s, Date__Ach=%s, Remarks=%s WHERE track_id=%s", (Field_Ach, Name_Ach, Level_Ach, Position_Ach, Date_Ach, Remarks, track_id))
flash("Data Updated Successfully")
mysql.connection.commit()
return redirect(url_for('admin_show'))
@app.route('/logout')
def logout():
session.pop('loggedin', None)
session.pop('id', None)
session.pop('username', None)
return render_template('index.html')
if __name__ == "__main__":
app.run()
而不是在return 'Logged in successfully!'
中返回adm_login
,请尝试使用return redirect(url_for('home'))
。
我希望您不要在生产环境中使用此代码,因为您的代码容易受到SQL注入的攻击。