Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.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 烧瓶:重定向不工作_Python_Url_Flask - Fatal编程技术网

Python 烧瓶:重定向不工作

Python 烧瓶:重定向不工作,python,url,flask,Python,Url,Flask,下面是我的代码 from datetime import datetime from logging import DEBUG from flask import Flask , render_template , url_for , request , redirect app = Flask ( __name__ ) app.logger.setLevel ( DEBUG ) bookmarks = [ ] def store_bookmarks (url): bookmarks.

下面是我的代码

from datetime import datetime
from logging import DEBUG
from flask import Flask , render_template , url_for , request , redirect

app = Flask ( __name__ )
app.logger.setLevel ( DEBUG )

bookmarks = [ ]


def store_bookmarks (url):
 bookmarks.append ( dict (
    url=url ,
    user="rgen" ,
    date=datetime.utcnow ()

) )


@app.route ( '/' )
@app.route ( '/index' )
def index ( ):
# return "Hello World!"
 return render_template ( 'index.html' )


@app.route('/add', methods=['GET', 'POST'])
def add():
 if request.method=="POST":
    url=request.form['url']
    store_bookmarks(url)
    return redirect(url_for('index'))
return render_template('add.html')


if __name__ == '__main__':
 app.run ()
base.html 不知道我在这里错过了什么

请帮忙


谢谢。

我运行了你的代码。修复代码格式后,它将按预期工作。正确的缩进对于python非常重要。你的html模板看起来不错,至少我没有发现任何错误。但是,您的app.py应该如下所示:

from datetime import datetime
from logging import DEBUG
from flask import Flask, render_template, url_for, request, redirect

app = Flask(__name__)
app.logger.setLevel(DEBUG)

bookmarks = []


def store_bookmarks(url):
    bookmarks.append(dict(
        url=url,
        user="rgen",
        date=datetime.utcnow()
    ))
    print('BOOKMARKS: ', bookmarks)


@app.route('/')
@app.route('/index')
def index():
    # return "Hello World!"
    return render_template('index.html')


@app.route('/add', methods=['GET', 'POST'])
def add():
    if request.method == "POST":
        url = request.form['url']
        store_bookmarks(url)
        return redirect(url_for('index'))
    return render_template('add.html')


if __name__ == '__main__':
    app.run(debug=True)
不像你在问题上贴的那样。只需删除app.py中的所有内容,粘贴上面提供的代码,重新启动服务器,看看它是否正常工作

另外,我建议您在开发期间将
debug
选项设置为
True
,这样您就不需要在每次更改代码时自动重新启动服务器。可能是您进行了更正,但没有重新启动服务器,这就是您认为更改没有帮助的原因。要启用调试,请在“我的代码”中添加:

if __name__ == '__main__':
    app.run(debug=True)

希望这能有所帮助。

@Ten Coin您是否尝试过使用而不是
返回True,重定向(url\u for('index'))
返回重定向(url\u for('index'))
?@Nurzhan,请检查我的编辑,是的,即使如此,我仍然面临同样的问题。顺便说一下,我正在使用Python3。@Ten Coin我在您当前代码中看到的唯一语法错误是add函数中的缩进错误。您的代码是这样写的吗?@Nurzhan代码很好,只是格式错误。@Ten Coin那么问题可能出在
store\u bookmarks(url)
中。你没有提供足够的信息来帮助你。我比较了我的主python文件和你的。但是我找不到任何区别,但是缩进可能是原因,因为你的代码对我来说非常适合。谢谢Nurzhan。
{% extends "base.html" %}
{% block title %}
Thermos -- Welcome
{% endblock %}
{% block content %}
                <article>
                    <header>
                        <h1>Welcome</h1>
                        <p>A Flask Project by Raja Genupula</p>
                    </header>
                    <section>
                        <h2>Title: {{ title }}</h2>
                        <p>Text: {{ text }}</p>
                    </section>
                    <section>
                        <h2>article section h2</h2>
                        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam sodales urna non odio egestas tempor. Nunc vel vehicula ante. Etiam bibendum iaculis libero, eget molestie nisl pharetra in. In semper consequat est, eu porta velit mollis nec. Curabitur posuere enim eget turpis feugiat tempor. Etiam ullamcorper lorem dapibus velit suscipit ultrices. Proin in est sed erat facilisis pharetra.</p>
                    </section>
                </article>

{% endblock %}
HTTP400: BAD REQUEST - The request could not be processed by the server due to invalid syntax.
POST - http://127.0.0.1:5000/add
from datetime import datetime
from logging import DEBUG
from flask import Flask, render_template, url_for, request, redirect

app = Flask(__name__)
app.logger.setLevel(DEBUG)

bookmarks = []


def store_bookmarks(url):
    bookmarks.append(dict(
        url=url,
        user="rgen",
        date=datetime.utcnow()
    ))
    print('BOOKMARKS: ', bookmarks)


@app.route('/')
@app.route('/index')
def index():
    # return "Hello World!"
    return render_template('index.html')


@app.route('/add', methods=['GET', 'POST'])
def add():
    if request.method == "POST":
        url = request.form['url']
        store_bookmarks(url)
        return redirect(url_for('index'))
    return render_template('add.html')


if __name__ == '__main__':
    app.run(debug=True)
if __name__ == '__main__':
    app.run(debug=True)