Flask 动态搜索栏问题

问题描述

我正在制作一个数据库网站,并在我的页面上有一个搜索表单,当您搜索特定名称时,它会为该名称创建一个动态 url,并使用我的数据库中的信息填写模板。这是我的代码

@app.route('/',methods=['GET','POST'])
def index():
    if request.method == "POST":
        book_database= request.form['book_database']
        return redirect(url_for('book"',book_name = book_database))

    return render_template('index_page.html')

模板在我的数据库中是这样设计的:

@app.route('/book/<book_name>','POST'])
def book(book_name):   
    if request.method == "POST":
        book_database = request.form['book_database']
        return redirect(url_for('book',book_name = book_database))
   book_database = protein_name
    # search by bookID or name
    cursor.execute("SELECT book_ID,book_name,author,language,description  \
                        from Book_database \
                        WHERE book_name LIKE %s OR author LIKE %s OR book_ID LIKE %s",(book_database,book_database,book_database))
    
    data_book = cursor.fetchall() 
    return render_template('book_view.html',data_book=data_book,book_name=book_name)

我也有作者的路线:

@app.route('/author/<author_name>','POST'])
def author(author_name):
    if request.method == "POST":
        book_database = request.form['book_database']
        return redirect(url_for('book',book_name =book_database)) 
    book_database = author_name
    # search by uniprotID or name
    cursor.execute("SELECT  author,book_ID,book_name \
                        from book_database \
                        WHERE author LIKE %s ",(book_database))
    conn.commit()
    data_author = cursor.fetchall()
    return render_template('author_view.html',data_author=data_author,author_name=author_name)

我的问题是,当我搜索作者时,它会呈现蛋白质模板并且不提取任何信息。我想要的是当我搜索一本书时,它会在我的数据库搜索匹配项,然后呈现图书模板。当我搜索作者时,我也想要同样的东西。所以我必须添加

@app.route('/','POST'])
def index():

    if request.method == "POST":
        book_database = request.form['book_database']
        return redirect(url_for('author',author_name = book_database))
    return render_template('index_page.html')

搜索部分使其与书名路线一起工作,因为我只能使其中一个工作。如果与我的数据库不匹配,我还想制作一个错误页面

我希望这很清楚,我已经坚持了一段时间,所以非常感谢您的帮助!如果有任何网站或教程可以指点我也将不胜感激!!!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)