评论
Python 框架Flask基础URL与视图学习

Python 框架Flask基础URL与视图学习

你要是透过我的眼睛看世界 那么山水温柔你也温柔

Flask框架算一种轻量快速上手的框架;但是不用语言框架语法不通,导致在撸代码的时候 总会出一些低级的错误

环境&工具

python 3.10

官网:http://www.python.org/

工具

可以使用Vs code需要自己安装对应插件随后安装Flask

pip3 install Flask

若是Pycharm可以直接在项目中建立,在项目环境设置中尽量选择本地

本文使用Pycharm,文章内容均为个人学习笔记建立好项目之后我们在项目中看到app.py文件

DEBUG

默认DEBUG是关闭的状态每次撸代码需要重新运行,开启DEBUG可以实时更新内容

引入配置

根目录新建一个config.py文件,在app.py引入后使用app.config.from_objectj进行配置

# 引入配置文件
import config

# 配置文件
app.config.from_object(config)

Urls视图

新建url

页面写一个默认数组


book = [
    {"id": 1, "name": "《少有人走的路》", "desrc": "各位大老板不要吝啬手上的一键三连,赶快点起来,我们还有更多视频要更新啊"},
    {"id": 2, "name": "《稍岑》", "desrc": "其他视频我也看了,讲的都很好"},
    {"id": 3, "name": "《少有人走的路》", "desrc": "与视频配套,比视频更完整"},
]

Flask引入jsonify支持json数组显示


# 引入flask
from flask import Flask, jsonify

写一个booklist路径页面且打印(运行后预览:127.0.0.1:5000/booklist)


@app.route('/booklist')
def bookDate():
    return jsonify(book)

url参数

url传输参数有2种方式,第一种int可以设置过来的参数必须为整数形


# /info/<int:参数> 
# methods指定GET POST

# 图书详情 id查询
@app.route('/info/<int:book_id>', methods=['GET'])
def bookinfo(book_id):
    for ids in book:
       if ids['id'] == book_id:
           return ids
    return f"{book_id}图书不在"

另外一种使用查询的方式,例如我们看到的?id=,需要引入request

# 引入flask
from flask import Flask, request

# ?id= 参数传输
@app.route('/profile')
def profile():
    user_id = request.args.get("id")

构造url

引入url_for,它接收两个及以上的参数,他接收函数名作为第一个参数,接收对应URL规则的命名参数


# 引入flask
from flask import Flask, url_for

@app.route('/')
def index(request):
    print(url_for("article",id=1))
    return "首页"

跳转重定向

引入redirect,我们可以配合刚刚的个人中心做if一个判断,如果个人中心没有内容跳转首页


# 引入flask
from flask import Flask, redirect

# redirect 301跳转
@app.route('/profile')
def profile():
    user_id = request.args.get("id")
    if user_id:
        return "个人中心"
    else:
        return redirect(url_for("index"))