写在前面

文章标题应该叫这个《大白话说Python+Flask入门(五)Flask中的各种视图》,但是标题我改了,是因为我现在感受就是想哭.....

为什么?

今天去相亲了,结果凉了,当然也在我的意料中,也不伤心。

女孩比我小5岁,直接就跟我说,不着急结婚,是为了应付父母不得不出来,所以没啥感觉!

作为一个35岁的大龄剩男,或者这么说吧,对于现在的我而言,不敢对女孩有任何期待,从另一个角度来说,不被嫌弃就很不错了。

怎么说呢,我可能还是忘不了前任,最近每天都想着和她能偶遇,结果一次也没遇到过!

写个文章,居然把我写哭了.....-LMLPHP

有的人会说,那你去找她复合,对不起我还想保留男人最后的一点尊严,就算她回头来找我了(我对她的了解,根本不可能),我也不会同意,我跟她不会有结果。

喜欢也好爱也罢,都烂在心里吧,其他的交给时间吧!

换个角度看,真的不怪前女友,我能理解她,谁叫自己不是年薪百万呢,还是自己不够优秀,怨不得别人,自己努力吧。

视图的使用

不管心情,好不好也不能忘了学习,来继续更新!

你常见的视图

一般我们看到的也就是这样的,如下所示:

from flask import Flask, render_template

app = Flask(__name__)


@app.route('/')
def index():
    return render_template('index.html')

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

基于类的即插视图

个人觉得就是加了个构造函数吧

from flask import Flask, render_template
from flask.views import View

app = Flask(__name__)


class RenderTemplateView(View):
    def __init__(self, template_name):
        self.template_name = template_name

    def dispatch_request(self):
        return render_template(self.template_name)


if __name__ == '__main__':
    app.add_url_rule('/', view_func=RenderTemplateView.as_view(
        'index', template_name='index.html'))
    app.run(debug=True)

知识点:

  • 无论何时请求被调度,会创建这个类的一个新实例,并且 dispatch_request() 方法会以 URL 规则为参数调用。
  • 这个类本身会用传递到 as_view() 函数的参数来实例化

基于MethodView类的API

这个看起来比较高级,但是我觉得真就一般般,我真的没见过,谁写接口,增删改查都是一个路径用到死吧,示例代码如下:

from flask import Flask
from flask.views import MethodView

app = Flask(__name__)


class UserAPI(MethodView):

    def get(self, user_id):
        if user_id is None:
            return 'a list of users'
        else:
            return 'expose a single user'

    def post(self):
        return 'create a new user'

    def delete(self, user_id):
        return 'delete a single user'

    def put(self, user_id):
        return 'update a single user'


def register_api(view, endpoint, url, pk='id', pk_type='int'):
    view_func = view.as_view(endpoint)
    app.add_url_rule(url, defaults={pk: None},
                     view_func=view_func, methods=['GET', ])
    app.add_url_rule(url, view_func=view_func, methods=['POST', ])
    app.add_url_rule('%s<%s:%s>' % (url, pk_type, pk), view_func=view_func,
                     methods=['GET', 'PUT', 'DELETE'])


if __name__ == '__main__':
    register_api(UserAPI, 'user_api', '/users/', pk='user_id')
    app.run(debug=True)

知识点:

  • 直觉上来看,就是同一个url路径,能完成增删改查了,只是细微区别在于是否传参数了
  • 一定程度上看,真的就是restful风格Api,再直白点说就是spring boot@RequestMapping,能够处理 HTTP 请求的方法, 比如GET, PUT, POST, DELETE以及 PATCH,真的不建议用,了解就好
  • 装饰视图类没有啥意义,所以不分享了

写在最后

心情还是很低落的吧,今天我跟爸爸主动说了下相亲的结果,爸爸没有说太多,只说了句,五年内你有孩子,我们还能帮你带动,要是在过几年,我们可能带不动了,都错过了,你自己多努力吧!

这种感觉就好像,有一天晚上我下班回家,妈妈跟我说了一句话,我差点哭了。

妈妈说:

这段话,我不知道打了多少次,此刻竟然哭的泣不成声!

我也理解妈妈的意思是,我们也不催你找对象,只是怕他们百年后,我自己在世上孤独一人,无人照顾,无依无靠。

找不找对象什么的是否能结婚,我觉得对我不重要,我是真的不想让父母担心,真的!

写到这,我写不下去了,已经哭成泪人了。

12-03 01:01