问题描述
我正在制作一个数据库网站,并在我的页面上有一个搜索表单,当您搜索特定名称时,它会为该名称创建一个动态 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 (将#修改为@)