zoukankan      html  css  js  c++  java
  • flask框架

    关于flask我有话说

    flask作为一个轻量级框架,它里面有好多扩展包需要下载,比较麻烦,而且有的时候flask需要在虚拟环境下运行,但是他的优点还是有滴 ,只要是用过Django的人,都会觉得flask是真的 '轻'

    Flask自由、灵活,可扩展性强,能结合最流行最强大的Python库
    入门简单,即便没有多少web开发经验,也能很快做出网站
    非常适用于小型网站
    非常适用于开发web服务的API
    开发大型网站无压力,但代码架构需要自己设计,开发成本取决于开发者的能力和经验
    各方面性能均等于或优于Django
    Django自带的或第三方的好评如潮的功能,Flask上总会找到与之类似第三方库
    Flask灵活开发,Python高手基本都会喜欢Flask,但对Django却可能褒贬不一
    Flask与关系型数据库的配合使用不弱于Django,而其与NoSQL数据库的配合远远优于Django

    flask里面的技术点有很多,比如cookie ,session ,过滤器 ,四个钩子,werkzeug和jinja2 ,蓝图.等等.
     
    先来说说这四个钩子,很多人会问:钩子?什么钩子,肯定一脸懵逼,对于钩子我的理解是: 可以把flask四种钩子看作是修饰器,我们在后端可以进行调用做相关的操作.使用钩子函数时,我们需要借助flask的全局变量g.g作为中间变量,在钩子函数和视图函数中间传递数据.我们先引入全局变量g
     
    下面是四个钩子的代码

    # redirect 跳转(重定项)  jsonify标准的json类型  url_for跳转
    from flask import Flask,request,jsonify,redirect,url_for
    # 初始化
    # from Config import Config
    app =Flask(__name__)
    # ascii码为False ,不会显示ascii码
    app.config['JSON_AS_ASCII'] = False
    
    # 指定方法,自己输出
    @app.route("/helloe")
    def hellow():
        id = request.form.get('id')
        name = request.form.get('name')
        userdict = {'id':1,'name':'张三'}
        return jsonify(userdict)
        # 输出的内容
    
    
    # errorhandler   用来捕获异常,并提示
    @app.errorhandler(404)
    def server_(e):
        return '此页面不从在'
    @app.errorhandler(405)
    def server_(e):
        return '此页面不允许访问'
    
    @app.before_first_request
    def before_():
        print('第一次访问的时候执行')
    
    
    @app.before_request
    def before_():
        print('每一次执行的时候执行')
    
    
    @app.after_request
    def after_():
        print('每一次执行之后')
    
    
    @app.teardown_request
    def teardown(e):
        print('当发生异常的时候,获取异常')
        print(e)
        return e
    
    if __name__ == '__main__':
        # debug自动识别我们的代码
        app.run(debug=True,host='127.0.0.1',port='8888')

    flask有两大核心:WerKzeug和Jinja2 

    WerKzeug是一个遵循WSGI协议的python函数库

    Jinja2是Python下一个被广泛应用的模板引擎,是由Python实现的模板语言,他的设计思想来源于 Django 的模板引擎,并扩展了其语法和一系列强大的功能,其是Flask内置的模板语言.
      模板语言:是一种被设计来自动生成文档的简单文本格式,在模板语言中,一般都会把一些变量传给模板,替换模板的特定位置上预先定义好的占位变量名.

     

    CSRF(这是我从网上找的一段话,因为我对这个也不是太了解) :

    CSRF全拼为Cross Site Request Forgery,译为跨站请求伪造。
    CSRF指攻击者盗用了你的身份,以你的名义发送恶意请求。
    包括:以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,虚拟货币转账
    造成的问题:个人隐私泄露以及财产安全。

    今天就写这么多了,其实我觉得不管是什么框架,flask也行,Django也好,都是一样的,我们不是靠着那两句flask才能走完一个项目,现在Django在市场上正火热,好多人都去学习,我觉的只有你有业务逻辑,编程思维,学起来什么都特别快,在打代码之前,想一想你下一步要做些什么,你想要的效果是什么样的,无非就是CV大法,删删改改的,好了,就这些了,祝大家学习flask如有神助,一日千里.

  • 相关阅读:
    Martix工作室考核题 —— 打印一个菱形
    Martix工作室考核题 —— 打印一个菱形
    Martix工作室考核题 —— 打印九九乘法表
    Martix工作室考核题 —— 打印九九乘法表
    Martix工作室考核题 —— 打印九九乘法表
    Martix工作室考核题 —— 201938 第三题
    Martix工作室考核题 —— 201938 第三题
    Martix工作室考核题 —— 201938 第三题
    Martix工作室考核题 —— 201938 第一题
    fiddler模拟发送post请求
  • 原文地址:https://www.cnblogs.com/lowbi/p/10452166.html
Copyright © 2011-2022 走看看