Python Flask应用程序错误:“在服务器上找不到请求的URL”
我正在尝试运行Flask应用程序,显示具有提交用户评论功能的图书概述页面。但我面临两个问题: 1当我尝试运行下面的代码时,/books/553803700的url会将我重定向回主页 我想这是一个问题 review=db.execute从review中选择review,其中review_by=:review_by,{review_by:current_user}.fetchone 2如果我对上面的字符串进行注释,则页面可以工作。但当我试图提交评论时,它显示“未找到”。在服务器上找不到请求的URL。如果您手动输入URL,请检查拼写并重试 application.py文件: 从flask导入flask、会话、渲染模板、请求、重定向、flash、jsonify 从会话导入会话 从sqlalchemy导入创建引擎 从sqlalchemy.orm导入作用域的_会话,sessionmaker .... 一些应用程序配置,其他路由 ... @app.route/books/ def bookisbn: 尝试: 如果全局性[会话][用户名]: 当前用户=全局[会话][用户名] book=db.executeSELECT*从书中选择,其中isbn=:isbn,{isbn:isbn}.fetchone 这是那根绳子 review=db.execute从review中选择review,其中review_by=:review_by, {review_by:current_user}.fetchone 如果审查为真: 返回render_templatebook.html,book=book,review=review 其他: 返回render_templatebook.html,book=book 除: 返回重定向/登录 @app.route/books//review,methods=['POST'] def reviewisbn: review=request.form.getreview 当前用户=全局[会话][用户名] db.executeINSERT进入reviews isbn,review_by,review Value:isbn,:review_by,:review, {isbn:isbn,审阅者:当前用户,审阅:审阅} db.commit db.close 返回重定向/book/+isbn book.html文件: {%extends layout.html%} {%block getin%} {{book.title}} 标题:{{book.Title} ISBN:{{book.ISBN} 作者:{{book.Author} 年份:{{book.Year} {%endblock%} {%block user_info%} 你想留下你的评论吗? {%if-review%} {{review} {%else%} 提交 {%endif%} 古德雷兹评论: {%endblock%}Python Flask应用程序错误:“在服务器上找不到请求的URL”,python,flask,jinja2,flask-sqlalchemy,flask-session,Python,Flask,Jinja2,Flask Sqlalchemy,Flask Session,我正在尝试运行Flask应用程序,显示具有提交用户评论功能的图书概述页面。但我面临两个问题: 1当我尝试运行下面的代码时,/books/553803700的url会将我重定向回主页 我想这是一个问题 review=db.execute从review中选择review,其中review_by=:review_by,{review_by:current_user}.fetchone 2如果我对上面的字符串进行注释,则页面可以工作。但当我试图提交评论时,它显示“未找到”。在服务器上找不到请求的URL。
非常感谢您帮助解决这两个问题,以解决第二个错误: 没有找到。在服务器上找不到请求的URL。如果你 手动输入URL请检查拼写并重试 您需要将反斜杠/添加到route@app.route/books/。它将与此类似:
@app.route("/books/<isbn>/")
def book(isbn):
#...
看看你的行动的价值
...
<form name="submit-review" action="/book/{{book.isbn}}/review" method="POST">
...
让我们用这个来代替它:
...
<form name="submit-review" action="{{ url_for('book', isbn=book.isbn) }}" method="POST">
...
否则,请尝试简单地删除它
...
<form name="submit-review" action="" method="POST">
...
谢谢你,但这没用: