flask学习第四天标准类视图

本文介绍了如何使用Flask框架创建RESTful API,包括使用类视图(ListView, JsonView)来组织路由,并实现JSON响应。通过`as_view()`方法动态注册类视图,如ListView和ListJsonView,展示了如何处理HTTP请求并返回自定义的字典数据。此外,还展示了如何利用`url_for`生成URL。
摘要由CSDN通过智能技术生成
from flask import Flask, render_template, views, jsonify, url_for

app = Flask(__name__)


def jtwj():
    return '个人中心'


class ListView(views.View):
    """
    看解释   首先继承于views.View
        其次 必须重写dispatch_request()
        基本上是返回一个字典
    """

    def dispatch_request(self):
        return '这是一个类视图'

    # def demo(self):
    #     return '这是测试'


class JsonView(views.View):
    def get_resposne(self):
        raise NotImplementedError()

    def dispatch_request(self):
        response = self.get_resposne()
        # 返回数据
        return jsonify(response)


class ListJsonView(JsonView):
    def get_resposne(self):
        # 类视图一般是渲染字典
        return {'username': 'zhangfan'}


# 这一个视图 第一个参数就是路由的网址 第二个参数就是路由下面的函数
# 映射路由的另一种反射方式
# app.add_url_rule(url_rule,view_func)来进行注册。
app.add_url_rule('/', view_func=jtwj)
app.add_url_rule('/list/', view_func=ListView.as_view('list'))  # as_view 为类起名字

# app.add_url_rule('/listjson/', view_func=ListJsonView.as_view('listjson'))  # as_view 为类起名字
# 第二种写法
app.add_url_rule('/listjson', endpoint='list1', view_func=ListJsonView.as_view('list'))


# endpoint和as_view作用差不多 两个同时在的时候  endpoint作用级更高

# 因为as.view()改变了类的名字  所以url_for需要写改变后的名字
@app.route('/')
def index():
    print(url_for('list1'))


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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值