flask浅学(2)[url与函数映射]

书接上回,进行debug模式设置

为了调试方便,我们在pycharm里面设置调试模式开启,以便遇到问题能及时查看原因,具体方法

在这里插入图片描述
在这里插入图片描述
此处打钩即为开启debug模式。

新建新的url地址和视图函数

app.py

names = [
    {'id': 1, 'name': '张三'},
    {'id': 2, 'name': '李四'},
    {'id': 3, 'name': '王五'},
    {'id': 4, 'name': '赵六'},
]

@app.route('/name/list')
def book_list():
    return '200'

此时访问127.0.0.1:5000只能看到返回200。如果想返回姓名列表,需要导入新的模块jsonify,此模块可以将字典转换成json的格式返回给前端

from flask import Flask, jsonify

修改新视图

@app.route('/name/list')
def name_list():
    return jsonify(names)

再次访问测试页面http://127.0.0.1:5000/name/list
在这里插入图片描述

需要前端传入数据然后展示数据的视图类型
@app.route('/name/<int:book_id>')
# 这里的数据类型可以是any,str,等
def name_info(name_id):
	# 此处是打印前端传过来的id值
    print(name_id)
    for i in names:
        print(i['id'])
        if name_id == i['id']:
            return i
    return f'{name_id}查无此人'
    

这样就完成了一个从前端浏览器传输数据到后端程序,处理完毕之后再返回给前端的整体流程。

构造url

通过def方法名称返乡查找对应的url

@app.route('/name/list')
def name_list():
    for i in names:
    	# url_info需要两个参数,一个是方法名称,一个是传入的参数,这样就可以打印出来每个名字的url
        i['url'] = url_for("name_info", name_id=i['id'])
    return jsonify(names)
   

运行结果
在这里插入图片描述
在后端代码中定义此url请求的类型 ,可以是POST,也可以是GET,或者两者均可,单纯获取服务器已存在的数据,一般使用GET请求,如果是向服务器传输数据,则一般使用PSOT请求。

@app.route('/name/list', methods=['GET'])
def book_list():
    for i in books:
        i['url'] = url_for("book_info", book_id=i['id'])
    return jsonify(books)

重定向,网址迁移或者未登录则要用到重定向的功能
扩展另一种前端传值方法:使用request方法,问号拼接参数

@app.route('/profile')
def profile():
	# 导入request方法,获取前段传入的id值
    user_id = request.args.get('id')
    if user_id:
    	# 如果传入id则进入用户中心
        return '用户个人中心'
    else:
    	# 如果没有传入参数,则重定向至对应网址
        return redirect(url_for('book_list'))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值