代码之家  ›  专栏  ›  技术社区  ›  MathMan 99

Python:使用flask创建主菜单页面

  •  0
  • MathMan 99  · 技术社区  · 4 年前

    我有以下代码:

    @app.route('/mainMenu', methods=['GET', 'POST'])
    def mainMenu():
        def name():
            cursor = mysql.connection.cursor(MySQLdb.cursors.DictCursor)
            sqlFile = open('name.sql')
            sqlCode = sqlFile.read()
            cursor.execute(sqlCode, (session['name'],))
            user = cursor.fetchone()
    
            if request.method == 'GET':
                name = request.form["name"]
                cursor = mysql.connection.cursor(MySQLdb.cursors.DictCursor)
                return render_template('mainMenu.html', user=user)
            return redirect(url_for('mainMenu'))
        def age():
            cursor = mysql.connection.cursor(MySQLdb.cursors.DictCursor)
            sqlFile = open('age.sql')
            sqlCode = sqlFile.read()
            cursor.execute(sqlCode, (session['age']))
            user = cursor.fetchone()
    
            if request.method == 'GET':
                age = request.form["age"]
                cursor = mysql.connection.cursor(MySQLdb.cursors.DictCursor)
                return render_template('mainMenu.html', user=user)
            return redirect(url_for('mainMenu'))
        def location():
            cursor = mysql.connection.cursor(MySQLdb.cursors.DictCursor)
            sqlFile = open('location.sql')
            sqlCode = sqlFile.read()
            cursor.execute(sqlCode, (session['location']))
            user = cursor.fetchone()       
            if request.method == 'GET':
                 location = request.form["location"]
                 cursor = mysql.connection.cursor(MySQLdb.cursors.DictCursor)
                 return render_template('mainMenu.html', user=user)
            return redirect(url_for('mainMenu'))
        def height():
            cursor = mysql.connection.cursor(MySQLdb.cursors.DictCursor)
            sqlFile = open('height.sql')
            sqlCode = sqlFile.read()
            cursor.execute(sqlCode, (session['height']))
            user = cursor.fetchone()       
            if request.method == 'GET':
                height = request.form["height"]
                cursor = mysql.connection.cursor(MySQLdb.cursors.DictCursor)
                return render_template('mainMenu.html', user=user)
            return redirect(url_for('mainMenu'))
         return redirect(url_for('mainMenu'))`
    

    我想做的是创建一个主菜单页面,显示每个用户登录时的姓名、年龄、位置和身高。上面的代码给了我这个错误:

    Too many redirects occurred to open "127.0.0.1:5000/mainMenu". This might occur if you open a page that is redirected to open another page which then is redirected to open the original page.

    我该怎么解决这个问题?

    0 回复  |  直到 4 年前
        1
  •  2
  •   Aristotle    4 年前

    我认为你需要有一个页面(主菜单)来调用每个函数,并返回每个函数的值(名称、年龄、身高和位置),然后渲染你想要的模板,所以你应该只有一个渲染模板,或者在调用函数后重定向到那里,我希望这是有意义的。

    推荐文章