• python框架之Flask


    介绍:Flask是一个使用 Python 编写的轻量级 Web 应用框架。其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 。

    WSGl:Web Server Gateway Interface(Web服务器网关接口,WSGI)已被用作Python Web应用程序开发的标准。 WSGI是Web服务器和Web应用程序之间通用接口的规范。

    Werkzeug:它是一个WSGI工具包,它实现了请求,响应对象和实用函数。 这使得能够在其上构建web框架。 Flask框架使用Werkzeug作为其基础之一。

    jinja2:jinja2是Python的一个流行的模板引擎。Web模板系统将模板与特定数据源组合以呈现动态网页。

    第一个Flask案例:

    第一步安装Flask   : pip install Flask

    from flask import Flask
    app = Flask(__name__)
    
    @app.route('/')
    def hello_world():
       return 'Hello World'
    
    if __name__ == '__main__':
       app.run()


    启动结果:

    
    
    
     

    案例2 :通过session来管理登录数据

    from flask import Flask
    from flask import render_template
    from flask import request
    from flask import make_response
    from flask import Flask, session, redirect, url_for, escape, request
    app = Flask(__name__)
    app.secret_key = 'fkdjsafjdkfdlkjfadskjfadskljdsfklj'
    
    
    @app.route('/')
    def index():
        if 'username' in session:
            username = session['username']
            return '登录用户名是:' + username + '<br>' + "<b><a href = '/logout'>点击这里注销</a></b>"
        return "您暂未登录, <br><a href = '/login'></b>" + "点击这里登录</b></a>"
    
    
    @app.route('/login', methods=['GET', 'POST'])
    def login():
        if request.method == 'POST':
            session['username'] = request.form['username']
            return redirect(url_for('index'))
    
        return '''
               <form action = "" method = "post">
                  <p><input type ="text" name ="username"/></p>
                  <p><input type ="submit" value ="登录"/></p>
               </form>
    
       '''
    
    
    @app.route('/logout')
    def logout():
        session.pop('username', None)
        return redirect(url_for('index'))
    
    
    if __name__ == '__main__':
        app.run(debug=True)


    效果图1:

    效果图2:

     效果3:

    案例2:Flask框架之模板渲染

    from flask import Flask, render_template
    
    app = Flask(__name__)
    
    @app.route('/')
    def index():
        my_int = 18
        my_str = 'curry'
        my_list = [1, 5, 4, 3, 2]
        my_dict = {
            'name': 'durant',
            'age': 28
        }
    
        # render_template方法:渲染模板
        # 参数1: 模板名称  参数n: 传到模板里的数据
        return render_template('hello.html',
                               my_int=my_int,
                               my_str=my_str,
                               my_list=my_list,
                               my_dict=my_dict)
    
    
    if __name__ == '__main__':
        app.run(debug=True)
    <!DOCTYPE html>
    <html lang="en">
    
    <head>
      <meta charset="UTF-8">
      <title>Title</title>
    </head>
    
    <body>
      <h2>我是模板</h2>
      {{ my_int }}
      <br>
      {{ my_str }}
      <br>
      {{ my_list }}
      <br>
      {{ my_dict }}
      <hr>
      <h2>模板的list数据获取</h2>
      <hr>
      {{ my_list[0] }}
      <br>
      {{ my_list.1 }}
      <hr>
      <h2>字典数据获取</h2>
      <hr>
      {{ my_dict['name'] }}
      <br>
      {{ my_dict.age }}
      <hr>
      <h2>算术运算</h2>
      <br>
      {{ my_list.0 + 10 }}
      <br>
      {{ my_list[0] + my_list.1 }}
    </body>
    
    </html>

    效果图:

    心有猛虎,细嗅蔷薇
  • 相关阅读:
    NLP——天池新闻文本分类 基于深度学习的文本表示
    NLP——天池新闻文本分类 Task4:fasttext深度学习
    NLP——天池新闻文本分类 TASK3
    Python基础Task3:异常处理
    Python基础TASK2:条件语句与循环语句
    React开发入门:以开发Todo List为例
    [MIT 18.06 线性代数]Intordution to Vectors向量初体验
    [Java Tutorial学习分享]接口与继承
    FutureTask源码分析(JDK7)
    KMP(超详细复杂度分析)
  • 原文地址:https://www.cnblogs.com/1314520xh/p/14924876.html
Copyright © 2020-2023  润新知