Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Flask应用程序错误:“在服务器上找不到请求的URL”_Python_Flask_Jinja2_Flask Sqlalchemy_Flask Session - Fatal编程技术网

Python Flask应用程序错误:“在服务器上找不到请求的URL”

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。

我正在尝试运行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%}
非常感谢您帮助解决这两个问题,以解决第二个错误:

没有找到。在服务器上找不到请求的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">
...

谢谢你,但这没用: