zoukankan      html  css  js  c++  java
  • Flask框架基础1

    Flask框架

    基于jinja2模板和werkzeug wsgi服务微型框架

    werkzeug简介

    werkzeug是一个wsgi工具包,他可以作为一个web框架的底层库,werkzeug不是一个web服务器,也不是一个web框架,而是一个工具包,官方的介绍说是一个wsgi工具包,它可以作为一个web框架的底层库,因为他封装好了很多web框架的东西,例如Request, Response等等。

    from werkzeug.wrappers import Request, Response
    
    @Request.application
    def hello(request):
        return Response('Hello world!')
    
    if __name__=='__main__':
        from werkzeug.serving import run_simple
        run_simple('localhost', 4000, hello)
    

    启动flask

    本质是执行wsgi_app()

    from flask import Flask # 导入flask
    app=Flask(__name__) # 实例化Flask对象
    
    @app.route('/index') # 加路由
    def index():
    	return '123'
    
    @app.route('/login')
    def login():
    	return '我的登录'
    
    if __name__ == '__main__':
        app.run() # 启动flask,执行wsgi_app()
    

    django四剑客-->flask四剑客

    """
    django      flask
    redirect-->redirect
    render-->render_template # 传值字典要**打散
    HttpResponse-->HttpResponse
    JsonResponse-->jsonify
    """
    
    from flask import Flask,redirect,render_template,jsonify
    app=Flask(__name__)
    
    @app.route('/index')
    def index():
    	return redirect('/login')
    
    @app.route("/test")
    def test():
        data={"name":"ada","age":30}
        return render_template("index.html",**data)
    
    @app.route("/login")
    def login():
        data = {"name": "ada", "age": 30}
        return jsonify(data)
    
    if __name__ == '__main__':
        app.run()
    

    flask配置文件四种方式

    from flask import Flask
    app=Flask(__name__)
    
    # 第一种方式
    app.debug=True
    app.secret_key='asdas'
    
    # 第二种方式
    app.config['DEBUG']=True
    
    # 第三种方式
    app.config.from_pyfile('settings.py')
    
    # settings.py文件
    DEBUG=True
    
    # 第四种方式(推荐)
    app.config.from_object('settingss.Test')
    
    # settingss.py文件
    class Test:
        DEBUG=True
    

    flask路由本质

    其实是执行 app.add_url_rule(self, rule, endpoint=None, view_func=None)

    rule-->路由

    endpoint-->反向解析的别名

    view_func-->当前的视图函数

    methods-->允许请求的方式['get','post'],如果不传值默认是get请求

    from flask import Flask,url_for,redirect
    app=Flask(__name__)
    
    # 第一种装饰器路由
    @app.route('/',endpoint='n1') # endpoint取别名,方便重定向跳转指定函数,不写默认是函数名
    def index():
    	return 'ok'
    
    # 第二种路由
    app.add_url_rule('/',view_func=index) # 注释@app.route('/',endpoint='n1')之后,使用app.add_url_rule('/',view_func=index)指向index函数
    
    @app.route('/login',methods=['get','post'])
    def login():
        print(url_for('n1'))
    	return redirect(url_for('n1'))
    
    if __name__ == '__main__':
        app.run()
    
  • 相关阅读:
    Warning:detected "cgroupfs" as the Docker cgroup driver. The recommended driver is "systemd".
    Ubuntu16.04安装K8s步骤和踩坑记录【不错】
    修改主机名(/etc/hostname和/etc/hosts区别)
    Windows10内置Linux子系统初体验
    Docker Swarm常用命令
    Docker Swarm集群部署
    Docker容器CPU、memory资源限制
    Docker监控容器资源的占用情况
    修改Docker容器启动配置参数
    sort-colors——排序3种数字
  • 原文地址:https://www.cnblogs.com/gaohuayan/p/11593934.html
Copyright © 2011-2022 走看看