当前位置:   article > 正文

基于python的Flask web开发 二:配置、变量和重定向_python html url_for get参数和url自带的变量

python html url_for get参数和url自带的变量

一、需要了解以下几个概念:

1.重定向:是通过各种方法将各种网络请求重新定个方向转到其它位置,分为永久重定向和暂时重定向,举个例子:在某网站中弹到注册界面,注册结束后跳转到网页的主页。

2.GET请求:读取URL所标志的信息;

3.POST请求:给服务器添加信息比如说写注释;

※如果只需要从服务器上获取数据,一般使用GET请求;如果前端需要把数据发送给服务器,一般用POST请求。

二、需要理解以下几个函数:

1.app.config.from_object(app_config[config_name]):使用该函数的前提是导入配置数据的文件,调用该函数其实就是在进行配置,把配置数据写在这个文件里也是可以的,但是单独把配置数据放在一个文件中这样可以更好的管理代码。

2.url_for()(属于url_for扩展库) :①给指定的函数构造 URL。它接受函数名作为第一个参数,也接受对应 URL 规则的变量部分的命名参数。

※什么意思呢?我的理解就是,可以将视图函数直接作为参数传递就去,返回值为该视图函数的路由对应的URL;也可以将视图函数作为第一个参数,URL中的变量作为第二个参数传进去,返回视图函数和传进去变量对应的URL。

②访问静态文件(CSS / JavaScript 等)。 只要在你的包中或是模块的所在目录中创建一个名为 static 的文件夹,在应用中使用 /static 即可访问。

3.jsonify()(属于jsonify扩展库):dic字典转成json字符串,为了让汉字能够正常的变成json字符串而不变成unicode码,需要将JSON_AS_ASCII赋值为FALSE。

※参数传递的两种形式:
    1、作为url的组成部分:/book/1
    2、查询字符串:/book?id=1

4.request.args.get()(属于request扩展库):获取URL参数的函数。

5.redirect()(属于redirect扩展库):传入需要重定向的目标URL作为参数。

6.f语句:f"my age is{num}",花括号里面的内容是变量部分,f语句做的就是,将变量和字符串部分分开,使花括号里面的内容以变量形式呈现。

  1. app.py
  2. #导入所需要的拓展包;
  3. from flask import Flask,jsonify,url_for,redirect,request
  4. #导入配置文件;
  5. import config
  6. app = Flask(__name__)
  7. #启用配置文件中的配置;
  8. app.config.from_object(config)
  9. #【】表示列表,{}表示字典,()表示原组;
  10. #英雄列表,每一个元素都是一个字典
  11. heros = [
  12. {"id":1,"name":"美国队长"},
  13. {"id":2,"name":"钢铁侠"},
  14. {"id":3,"name":"蜘蛛侠"},
  15. {"id":4,"name":"雷神"},
  16. ]
  17. #在@qpp.route上,添加methods参数,这个参数时一个列表类型,可以传递多个方法。
  18. @app.route("/hero/<int:hero_id>",methods=['POST','GET'])
  19. #id作为一个int型的变量,也作为参数传给hero_detail视图函数;
  20. def hero_detail(hero_id):
  21. for hero in heros:
  22. if hero_id == hero['id']:
  23. return hero
  24. return f"id为{hero_id}的图书没有找到!"
  25. @app.route("/hero/list")
  26. def hero_list():
  27. for hero in heros:
  28. hero['url'] = url_for("hero_detail",hero_id = hero['id'])
  29. #在列表的每一个字典元素中再添加一个元素:url地址;
  30. #book['url'] = f"/book/{book['id']}"
  31. return jsonify(heros)#视图函数返回列表内容;
  32. @app.route("/profile")
  33. def profile():
  34. user_id = request.args.get("id")#获取URL参数的函数;
  35. if user_id:
  36. return "个人中心"
  37. else:
  38. return redirect(url_for("hello_world"))#实施重定向;
  39. @app.route('/')
  40. def hello_world(): #根目录下的视图函数
  41. return '<h1>Hello World!<h1>'
  42. if __name__ == '__main__':
  43. app.run()
  44. #重定向(redirect),访问某个url会提前跳转到另一个url上,分为永久性和暂时性
  1. config.py
  2. #flask所有的函数配置直接在这里进行
  3. JSON_AS_ASCII = False

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/389301
推荐阅读
相关标签
  

闽ICP备14008679号