Flask_学习笔记_02: 页面跳转

页面跳转是网页开发中需要实现的最基本的一个功能,用户点击页面中的一个超链接或者按钮,就会跳转到一个新页面。那么在Flask当中是如何实现的呢?

在下面的例子中,也会用到url_for(),还有另外一个redirect。目前几乎所有的网站都需要用户登录,才能发布新内容或者做相关的更改。下面就以用户要发布一篇新文章,点击发布文章按钮为例,判断如果用户登录了,就直接跳转到发布新文章页面,如果用户没有登录,就跳转到登录页面。

代码如下:

from flask import Flask, url_for, redirect

app = Flask(__name__)

@app.route("/")
def index():
    return "这是首页!"

@app.route("/login/")
def login():
    return "这是登录页面!"

@app.route("/publish_howto/<is_login>")
def publish_howto(is_login):
    if is_login == '1':
        return "欢迎来到发布howto页面!"
    else:
        return redirect(url_for('login'))

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

首先要导入url_for和redirect
然后写一个登录页面视图函数:login
再写一个发布文章页面:publish_howto,需要注意的是需要加一个参数,来判断用户是否登录,我们把参数命名为is_login,后面学了cookie之后再做代码优化,现在只是模拟一下,知道了这个逻辑就好。在发布文章的视图函数中就要判断了,如果用户已经登录,就留在发布页面,返回发布页面的内容给用户;如果用户没有登录,就重定向到用户登录页面。
实际效果见下:
首先来模仿一下用户未登录,访问发布文章页面,输入URL: http://127.0.0.1:5000/publish_howto/0 然后回车,用户就会被重定向到登录页面:
Flask_学习笔记_02: 页面跳转

再来模仿一下用户已经登录,访问发布文章页面,输入URL: http://127.0.0.1:5000/publish_howto/1 然后回车,用户就会留在发布文章页面:
Flask_学习笔记_02: 页面跳转

嗯,感觉很简单啊!

小结:
今天的重点在: return redirect(url_for('login'))
页面重定向要用到redirect()函数,而重定向的页面URL,我们最好用url_for反转得到最终的URL地址,不需要写死URL地址,这样的好处就是以后URL地址有变,你也不需要更改,大大减少了代码维护,效率得到了大大的提高啊!

转载于:https://blog.51cto.com/jiaszwx/2313178

Python Flask应用中,如果遇到跨域(CORS,Cross-Origin Resource Sharing)问题,特别是预检请求(Preflight Request)失败,`flask-cors`库可以帮助处理这种限制。当浏览器发起AJAX请求到非同源服务器时,会先发送一个OPTIONS请求(预检请求),检查是否允许跨域。Flask-CORS通过设置配置来解决这个问题。 首先,你需要安装`flask-cors`库: ```bash pip install flask-cors ``` 然后,在你的Flask应用中添加以下配置到`app.py`文件中: ```python from flask import Flask from flask_cors import CORS app = Flask(__name__) CORS(app, supports_credentials=True) # 添加这行启用跨域支持,并允许携带凭证(如有需要) @app.route('/your_api_endpoint', methods=['GET', 'POST']) def your_function(): # ...你的业务逻辑... if __name__ == '__main__': app.run() ``` 在这里,`supports_credentials=True`表示允许带凭据的请求,比如cookies。如果你的应用只接受特定来源的请求,可以在`resources`选项中指定: ```python CORS(app, resources={r"/your_api_endpoint": {"origins": "http://example.com"}}) ``` 对于预飞请求的问题,flask-cors会在收到OPTIONS请求时自动处理返回适当的响应头,如`Access-Control-Allow-Methods`、`Access-Control-Allow-Headers`等。 如果仍然遇到问题,可能是浏览器的安全策略更为严格,或者后端服务器的响应头配置不正确。在这种情况下,检查并确认你已经正确设置了响应头,并确保它们符合现代浏览器的要求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值