zoukankan      html  css  js  c++  java
  • flask

    https://www.cnblogs.com/DragonFire/tag/Flask%E5%AD%A6%E4%B9%A0/
    
    一:初识flask
    安装:pip install Flask
    1. Django Web框架
        优点:大而全,Froms Admin model ......
        缺点:浪费资源
    
    2. Flask Web框架
        优点:短小精悍,session(存放在cookies),三方组件强大
        缺点:运行稳定性较差,你还不会
        
    
    
    三行代码:
    from flask import Flask
    app = Flask(__name__)
    app.run()
    
    
    六行视图函数
    @app.route("/index") # 路由
    def index(): # 视图函数
        return "Hello OldBoy EDU" # Django HttpResponse
    
        
    二:response三剑客:    
    httpresponse: return "hello" 
    jsonify({k:v})
    
    render_template : 
        先导入再 return 
        templates 是模板的默认存放路径
    
    redirect:
        先导入再 return redirect("/login")
    
    send_file():
        先导入再 return send_file(打开文件并返回)
    
    
        
    三:flask中的request
    request:
        args url地址当中的参数
        form POST请求体中的FormData中的数据
        values 获取所有参数(url,formdata)
        request.data content-type:jinwangbayinwangbabiwushangzanjiadelaowangba  b"{username:jinwangba}"
        request.json content-type:application/json 将数据序列化字典中
        request.files 获取Formdata中的文件
            jwbdf = request.files["jinwangbadefile"]
            jwbdf.save(jwbdf.filename)
        
        属性类的:
        method 请求方式
        url 完整地址
        host 前半段儿 http://111.111.111.111:5000/
        path 后半段儿 /login
    
    四:flask中的模板语言 jinjia2及render_template
        Jinja2        
        {{  }}  非逻辑代码
        {%  %}    逻辑代码
        
    七:flask中的路由系统
    路由:
        methods=["POST","GET"]
        endpoint="反向url地址"
        url_for("反向url地址")
        defaults={"nid":10}
        动态路由参数/index/<int:arg>
                    url_for("endpoint",arg=123)
    
    八:对app的配置及实例化flask参数                
    Flask的配置
        1.Flask实例化配置 app = Flask(__name__)
            static_folder = 'static',  # 静态文件目录的路径 默认当前项目中的static目录
            static_url_path = None,  # 静态文件目录的url路径 默认不写是与static_folder同名,远程静态文件时复用
            template_folder = 'templates'  # template模板目录, 默认当前项目中的 templates 目录
            
        1 app.config["DEBUG"] = True
        2 配置文件:settings.py    启动文件:app.config.from_object("settings.FlaskSetting")  
        2.Flask对象配置
            'SECRET_KEY': None,  # 之前遇到过,在启用Session的时候,一定要有它
            'SESSION_COOKIE_NAME': 'session',  # 在cookies中存放session加密字符串的名字
            'JSONIFY_MIMETYPE': 'application/json'
            
            class FlaskConfigDebug(object):
                DEBUG = True
                SECRET_KEY = "DragonFire"
    
    
            class FlaskConfigTesting(object):
                TESTING = True
                SECRET_KEY = "DragonFire"
            
            app.config.from_object(FlaskConfigDebug)
        
    
    
    九:Flask蓝图(Blueprint)
        from flask import Blueprint       #s_view.py
        app.register_blueprint(s_view.sv) #manager.py 
        蓝图就是另一种形式的Flask实例
            detail_blueprint = Blueprint("serv",__name__, template_folder="serv_temp",
                                 static_folder="serv_static",
                                static_url_path="/serv_static",url_prefix="/servs")
    
                                
        
    十:Flask特殊装饰 (组件)
        @app.template_folder() 类偏函数的方法
        @app.template_global() 全局函数
        @app.errorhandler(405)
        def my_405(args)
        
        @app.before_request
        def be1():
            return None 是继续
            return not None 是中断 
    
        @app.after_request
        def af1(res):
            return res 
            
        # be1 - be2 - af2 - af1
        # be1 - af2 - af1
        
        
    Flask中的session
        app.config["SECRET_KEY"] = "asdfasdfasdf"
        
    
        
    Flask中的 CBV
        class Login(views.MethodView):
            def get(self):
                return render_template("template.html")
    
            def post(self):
                username = request.form.get("username")
                password = request.form.get("password")
                if username == "yinwangba" and password == "jinwangba":
                    return "登录成功"
    
                return render_template("template.html",msg="登录失败滚吧")
    
        app.add_url_rule("/login",endpoint=None,view_func=Login.as_view(name="login"))
  • 相关阅读:
    Ant
    责任链模式
    日志logback
    知识点
    三个实例演示 Java Thread Dump 日志分析
    IDEA运行编译后配置文件无法找到,或配置文件修改后无效的问题
    IDEA创建MAVEN WEB工程
    多线程源码分析ThreadPoolExecutor
    解决
    微博关系服务与Redis的故事
  • 原文地址:https://www.cnblogs.com/xujinjin18/p/9874163.html
Copyright © 2011-2022 走看看