flask 订阅
Flask是一个使用 Python 编写的轻量级 Web 应用框架。其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 。Flask使用 BSD 授权。Flask也被称为 “microframework” ,因为它使用简单的核心,用 extension 增加其他功能。Flask没有默认使用的数据库、窗体验证工具。 [1] 展开全文
Flask是一个使用 Python 编写的轻量级 Web 应用框架。其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 。Flask使用 BSD 授权。Flask也被称为 “microframework” ,因为它使用简单的核心,用 extension 增加其他功能。Flask没有默认使用的数据库、窗体验证工具。 [1]
信息
核心语言
python
授    权
BSD 授权
特    点
使用简单的核心
中文名
Flask
也被称
“microframework”
外文名
Flask
Flask简介
Flask是一个轻量级的可定制框架,使用Python语言编写,较其他同类型框架更为灵活、轻便、安全且容易上手。它可以很好地结合MVC模式进行开发,开发人员分工合作,小型团队在短时间内就可以完成功能丰富的中小型网站或Web服务的实现。另外,Flask还有很强的定制性,用户可以根据自己的需求来添加相应的功能,在保持核心功能简单的同时实现功能的丰富与扩展,其强大的插件库可以让用户实现个性化的网站定制,开发出功能强大的网站。Flask是目前十分流行的web框架,采用Python编程语言来实现相关功能。它被称为微框架(microframework),“微”并不是意味着把整个Web应用放入到一个Python文件,微框架中的“微”是指Flask旨在保持代码简洁且易于扩展,Flask框架的主要特征是核心构成比较简单,但具有很强的扩展性和兼容性,程序员可以使用Python语言快速实现一个网站或Web服务。一般情况下,它不会指定数据库和模板引擎等对象,用户可以根据需要自己选择各种数据库。Flask自身不会提供表单验证功能,在项目实施过程中可以自由配置,从而为应用程序开发提供数据库抽象层基础组件,支持进行表单数据合法性验证、文件上传处理、用户身份认证和数据库集成等功能。Flask主要包括Werkzeug和Jinja2两个核心函数库,它们分别负责业务处理和安全方面的功能,这些基础函数为web项目开发过程提供了丰富的基础组件。Werkzeug库十分强大,功能比较完善,支持URL路由请求集成,一次可以响应多个用户的访问请求;支持Cookie和会话管理,通过身份缓存数据建立长久连接关系,并提高用户访问速度;支持交互式Javascript调试,提高用户体验;可以处理HTTP基本事务,快速响应客户端推送过来的访问请求。Jinja2库支持自动HTML转移功能,能够很好控制外部黑客的脚本攻击。系统运行速度很快,页面加载过程会将源码进行编译形成python字节码,从而实现模板的高效运行;模板继承机制可以对模板内容进行修改和维护,为不同需求的用户提供相应的模板。目前Python的web框架有很多。除了Flask,还有django、Web2py等等。其中Diango是目前Python的框架中使用度最高的。但是Django如同java的EJB(EnterpriseJavaBeansJavaEE服务器端组件模型)多被用于大型网站的开发,但对于大多数的小型网站的开发,使用SSH(Struts+Spring+Hibernat的一个JavaEE集成框架)就可以满足,和其他的轻量级框架相比较,Flask框架有很好的扩展性,这是其他Web框架不可替代的。 [2] 
收起全文
精华内容
参与话题
问答
  • Flask

    千次阅读 多人点赞 2018-05-19 17:33:10
    1. Flask 是一个Python实现的WEB开发微框架; 1)django — 完善完整高集成的框架 2) flask — 不包含数据库抽象微框架,database, templates 需要自己组装 2. 安装 创建虚拟环境: virtualenv --no-site-...

    Flask

    1. Flask 是一个Python实现的WEB开发微框架;

    1)django — 完善完整高集成的框架
    2) flask — 不包含数据库抽象微框架,database, templates 需要自己组装

    2. 安装

    创建虚拟环境: virtualenv --no-site-packages flaskenv
    cd flaskenv/Script
    启动虚拟环境: activate
    

    3. 新建与运行Flask

    1) 新建:Pycharm新建project, 环境选择已经建好的虚拟环境, 项目选择flask;
    2) 运行: python xxx.py  -- 启动默认127.0.0.1:5000端口
    3) 运行参数: debug = True 调试
                port = '8000' 端口
                host = '0.0.0.0' IP
    

    4. 修改启动方式

    1) 安装包: pip install flask-script
    2) 启动方式: python xxx.py runserver -p 端口 -h IP地址 -d
    

    5. 蓝图 – 管理url, 规划url

    1) 安装包: pip install flask-blueprint
    2) 初始化
    3) 路由注册
    

    【4、5注解:端口,IP默认为:127.0.0.1:5000 -d 为调试模式】

    6. route规则

    a) django:
        \(\d+)\
        \<?P(\d+)>\
    b) flask
        <converter:name>
        # converter 可以是如下内容,name为参数
        string:默认字符串,可以省略
        int: 整型
        float: 浮点型
        path: '/'也是可以当做字符串返回
        uuid: uuid类型
    

    7. request 请求

    args -- GET请求,获取参数
    form -- POST请求,获取参数
    files -- 上传的file文件
    method -- 请求方式
    

    8. 蓝图前缀

    url_prefix = 'hello'
    

    9. response 响应

    服务端自己创建,然后返回给客户端
    传入自己定义的状态码(如404,500等)
    make_response('页面', 状态码)
    

    10. 使用数据库

    SESSION_TYPE类型: redis, mongdb, memcached, sqlchemy
        #1 秘钥
            app.config['SECRET_KEY'] = 'secret_key'
        #2 使用redis存储信息,默认访问本地redis,127.0.0.1:6379
            app.config['SESSION_TYPE'] = 'redis'
        #3. 连接远程redis
            app.config['SESSION_REDIS'] = redis.Redis(host='此处填IP地址',post='6379',password='数据库密码'
    

    【注1】:
    session: session和cookie的作用有点类似,都是为了存储用户相关的信息。不同的是,cookie是存储在本地浏览器,而session存储在服务器。存储在服务器的数据会更加的安全,不容易被窃取。但存储在服务器也有一定的弊端,就是会占用服务器的资源,但现在服务器已经发展至今,一些session信息还是绰绰有余的。
    【注2】
    flask中使用cookie和session
    1) cookies:在Flask中操作cookie,是通过response对象来操作,可以在response返回之前,通过response.set_cookie来设置,这个方法有以下几个参数需要注意:
    a) key:设置的cookie的key。
    b) value:key对应的value。
    c) max_age:改cookie的过期时间,如果不设置,则浏览器关闭后就会自动过期。
    d) expires:过期时间,应该是一个datetime类型。
    e) domain:该cookie在哪个域名中有效。一般设置子域名,比如cms.example.com。
    f) path:该cookie在哪个路径下有效。
    2) session:Flask中的session是通过from flask import session。然后添加值key和value进去即可。并且,Flask中的session机制是将session信息加密,然后存储在cookie中。专业术语叫做client side session。

    11. 网页‘挖坑’、‘填坑’

    {% block xxx %}{% endblock %}
    

    12. 加载css:

    a) Django:
        第一种方式: 
            {% load static %}
            <link rel="stylesheet" href="{% static 'css/xxx.css'%}">
        第二种方式:
            <link rel="stylesheet" href="/static/css/xxx.css">
    b) Flask
        第一种方式:
            <link rel="stylesheet" href="{{ url_for('static', filename='css/xxx.css')}}">
        第二种方式:
            <link rel="stylesheet" href="/static/css/xxx.css">
    

    13. 网页过滤器

    safe: 渲染标签
    striptags: 渲染之前去掉标签
    
    trim: 去掉空格
    length: 计算长度
    
    第一个字母: {{ i|first }}
    最后一个字母: {{ i|last }}
    全部转换为小写: {{ i|lower }}
    全部转换为大写: {{ i|upper }}
    首字母大写: {{ i|capitalize }}
    

    14. 数据库

    a) 安装模块:
        pip install flask-sqlalchemy
        pip install pymysql
    
    primary_key: 指定主键
    autoincrement: 自增
    unique: 唯一
    default: 默认值
    Integer: 整型
    String: 字符串
    
    __tablename__: 指定数据库名称
    
    b) 连接数据库:
        app.config['SQLALCHEMY_DATABASE_URI']='mysql+pymysql://root:此处填密码@IP:端口/数据库名称'
    
    c) 添加多条学生信息:
        s_list = [学生对象1,学生对象2, ......]
        db.session.add_all(s_list)
    
    d) 运算符
        1) filter(模型名.字段.运算符('xxx'))
            例如:filter(Student.s_age.__lt__(20)) -- 查找年龄少于20岁的学生
        2) filter(模型名.字段 运算符 值)
            例如: filter(Student.x_age < 20) --查找年龄少于20岁的学生
    
        __lt__ 小于
        __le__ 小于等于
        __gt__ 大于
        __ge__ 大于等于
    
        in_ 在......范围内
        order_by() 排序
        limit(n) 截取n个信息
        offset(n) 跳过n个信息
        get 获取主键对应的信息
    
        or_ 或
        and_ 且
        not_ 非
    
    e) 分页
        paginate对象
        pages 总页数
        total 总条数
        has_prev 是否有上一页
        has_next 是否有下一页
    
        iter_pages() 当前一共多少页
    
    f) 一对多 one_to_many Foreignkey
        【例如班级--学生, 一个班级有多个学生】
        在many的model中定义含Foreignkey的字段:
            例:s_g = db.Column(db.Integer, db.Foreignkey(Grade.g_id), nullable=True)
        在one的model中定义relationship字段
            例:students = db.relationship('Student', backref='stu', lazy=True)
        1) 通过one找many: one的对象.students,结果为many的结果
        2) 通过many找one: many的对象.stu,结果为one的对象
    
    g) 多对多 many_to_many
        关键字:Foreignkey、中间表、relationship
            例如学生和课程:
                中间表:
                    sc = db.Table {'sc',
                         db.Column('s_id',db.Integer,db.Foreignkey('Student.s_id'),primary_key=True),
                         db.Column('c_id',db.Integer,db.Foreignkey('Course.c_id',primary_key=True))
                    }
                课程表需要添加:
                    students = db.relationship('Student',secondary=sc,backref='cour')
                1) 通过学生找到所选的课程--列表:
                学生的对象.cour
                2) 通过课程找到选这门课的所有学生--列表:
                课程的对象.students
    
    展开全文
  • Python之Flask框架Flask框架简介、安装、使用方法详细攻略 目录 Flask框架简介 Flask框架安装 Flask框架使用方法 1、小试牛刀,然后访问UR即可得到L Flask框架简介 对初学者来说,循序渐进是最...

    Python之Flask框架:Flask框架简介、安装、使用方法详细攻略

     

     

    目录

    Flask框架简介

    Flask框架安装

    Flask框架使用方法

    1、小试牛刀,然后访问UR即可得到L


     

     

    Flask框架简介

           对初学者来说,循序渐进是最重要的,我推荐学习 Flask(Welcome | Flask (A Python Microframework)
           Flask 很轻,花很少的成本就能够开发一个简单的网站。非常适合初学者学习。Flask 框架学会以后,可以考虑学习插件的使用。例如使用 WTForm + Flask-WTForm 来验证表单数据,用 SQLAlchemy + Flask-SQLAlchemy 来对你的数据库进行控制。
    BTW:果壳网基于 Flask 开发的。

    1、各个主流框架对比

    Django Django:1个重武器,包含了web开发中常用的功能、组件的框架;(ORM、Session、Form、Admin、分页、中间件、信号、缓存、ContenType....);  
           Django。如楼上所说,是一个全能型框架。目前 Django 的使用面还是很广的,有学习的价值,但是不建议初学者学习,因为要学习的东西太多了,一下子难以吸收会失去兴趣。当然,Django 的目的是为了让开发者能够 快速 地开发一个网站,它提供了很多模块,其中我最喜欢的就是 admin 模块,http://your.site.com/admin 就进入了网站的后台(内置的哦~)方便地对数据进行操作,等等。。。。因此,如果对 Django 熟悉的话,papapa 一下子就写好一个网站的原型了。
    Tornado

    Tornado:2大特性就是异步非阻塞、原生支持WebSocket协议;  

    Tornado。传说中性能高高的框架。Tornado 是一个很好的框架,支持异步处理的功能,这是它的特点,其他框架不支持。另外一点是,Tornado 的设计似乎更注重 RESTful URL。但 Tornado 提供了网站基本需要使用的模块外,剩下的则需要开发者自己进行扩展。例如数据库操作,虽然内置了一个 database 的模块(后来独立出去了,现在叫做 torndb,bdarnell/torndb · GitHub)但是不支持 ORM,快速开发起来还是挺吃力的。如果需要 ORM 支持的话,还需要自己写一层将 SQLAlchemy 和 Tornado 联系起来,而且这里还有一个坑。
    BTW:知乎就是基础 Tornado 开发的。

    Flask Flask:功能和性能虽然不及Django和Tornado,但是Flask的第三方开源组件比丰富;http://flask.pocoo.org/extensions/  
    Bottle

    Bottle:比较简单;

    Bottle 和 Flask 都属于轻量级的 Web 框架。但是 Bottle 似乎落寞了。我觉得跟他的 API 设计有关系。个人认为 Bottle 使用起来不那么顺手,因此也用得少。这里不做太多介绍。

    web2py web2py。也是很轻的一个框架,使用不多,也不做介绍。
    5. web2py。我看楼上都没有对这个框架做介绍。这个框架是 Google 在 web.py 基础上二次开发而来的,兼容 GAE 。性能据说很高,曾经用他来做自己的主页,感觉也还不错。缺点同样是对扩展支持不太好,需要自己进行扩展。
    Quixote Quixote:著名的 豆瓣 就是基于 Quixote 开发的。跟上面几个框架不同,Quixote 的路由会有些特别。另外 Quixote 的性能据说也好。

    总结:小型web应用设计的功能点不多使用Flask;  大型web应用设计的功能点比较多使用的组件也会比较多,使用Django(自带功能多不用去找插件);  如果追求性能可以考虑Tornado;     

     

    Flask框架安装

    Flask的socket是基于Werkzeug 实现的,模板语言依赖jinja2模板,在使用Flask之前需要安装一下;

    pip install flask

     

     

    Flask框架使用方法

    1、小试牛刀,然后访问UR即可得到L

    from flask import Flask
    
    app=Flask(__name__) #创建1个Flask实例
    
    @app.route('/')      #路由系统生成 视图对应url,1. decorator=app.route() 2. decorator(first_flask)
    def first_flask():    #视图函数
        return 'Hello World'  #response
    
    if __name__ == '__main__':
        app.run()              #启动socket

     

     

    相关文章

    PythonWEB框架之Flask
    Python 有哪些好的 Web 框架?


     

    展开全文
  • Flask框架

    万次阅读 2020-05-03 17:33:24
    Flask框架 一、初识Flask 二、Flask路由注册 三、Flask的HTTP请求 四、Flask视图函数 五、Flask模板 六、Flask应用数据库 七、Flask脚本 八、Flask cookie、session、闪现 九、Flask请求扩展、中间件、蓝图 十、...
    展开全文
  • Flask框架Flask-Login用法分析

    千次阅读 2019-04-16 08:15:31
    本文实例讲述了Flask框架Flask-Login用法。分享给大家供大家参考,具体如下: Flask-Login插件中带了6种信号,可以基于其中的信号做一些额外工作,比如user_logged_in来记录用户的登录次数和登录IP等。 安装 ? ...

    本文实例讲述了Flask框架Flask-Login用法。分享给大家供大家参考,具体如下:

    Flask-Login插件中带了6种信号,可以基于其中的信号做一些额外工作,比如user_logged_in来记录用户的登录次数和登录IP等。

    安装

    ?

    1

    pip install flask-login

    初始化

    ?

    1

    2

    3

    4

    5

    import flask import Flask

    from flask_login import LoginManager

    app = Flask(__name__)

    login_manager = LoginManager()

    login_manager.init_app(app)

    UserMixin

    flask-login提供了UserMixin,有一些用户相关的属性。

    • is_authenticated:是否被验证
    • is_active:是否被激活
    • is_anonymous:是否匿名用户
    • get_id():获得用户的Id,并转换Unicode类型

    可以在创建模型的时候继承UserMixin:

    ?

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    from flask_login import UserMixin,login_user

    from sqlalchemy import create_engine,Column,String,Integer

    from sqlalchemy.ext.declaractive import declaractive_base

    engine = create_engine("mysql+pymysql://root:123456@localhost/pythondb?charset=utf8")

    Base = declaractive_base()

    class User(Base,UserMixin):

      __tablename__ = "user"

      id = Column(Integer,primary_key=True)

      name = Column(String(16))

      password = Column(String(16))

      def login(self):

        login_user(self)

    当调用login方法时,登录用户就会触发user_logged_in信号,开发者可以在此做一些自定义操作,如增加登录次数:

    ?

    1

    2

    3

    4

    from flask_login import user_logged_in

    @user_logged_in.connect_via(app)

    def _logged_in(sender,user,**extra):

      ...

    使用user_loader装饰器的回调函数非常重要,它将决定user对象是否在登录状态:

    ?

    1

    2

    3

    4

    # login_manager为上面初始化的login_manager

    @login_manager.user_loader

    def user_loader(id):

      return session.query(User).filter_by(id=id).first()

    login_required

    在开发过程中,常常会遇到这样的需求,某个接口必须要登录情况下才可以获取信息,login_required正好可以满足这一需求

    ?

    1

    2

    3

    4

    5

    from flask_login import login_required

    @app.route("/user_info")

    @login_required

    def user_info():

      ...

    获取用户的信息,必须先登录才可以获取信息。

    希望本文所述对大家基于Flask框架的Python程序设计有所帮助。

    展开全文
  • Flask框架和Flask-Script介绍

    万次阅读 2016-08-08 19:18:01
    一、装饰器decorator 在Python中装饰器,在Java中称为注解; # -*- encoding=UTF-8 ''' * 用来传递任意个无名字参数,这些参数会一个Tuple的形式访问。 **用来处理传递任意个有名字的参数,这些参数用dict来访问 ...
  • 一、建立路径关系 装饰器 此处endpoint,options 此处增加了self.view_functions的对应关系 二、启动 运行werkzeug的run_simple make server判断是多线程,多进程...base server调用了httpser
  • Flask是一个使用 Python 编写的轻量级 Web 应用框架,由于丰富的第三方资源组件,受到了很大的青睐,3天就能搭建一个功能齐全的网站,Flask不但是个人网站的佳选择,也在很多复杂的企业级网站中使用,应越广泛。...
  • Flask框架介绍

    千次阅读 2020-05-02 14:09:57
    1.Flask常用扩展包 2.Flask的主要内容
  • flask框架实例

    千次阅读 2019-03-04 17:20:58
    需求: 我们现在想要创建一个网站,有导航栏(如图) 同时做一个登陆界面、一个注册界面、一个主页。 要求登陆界面与注册界面可以互相转换、只有root用户可以查看并删除用户...新建flask项目 ...from flask import F...
  • Flask框架简介

    千次阅读 2019-01-12 10:37:21
    Flask是当下流行的Web框架,它是用Python实现的。Flask显著的特点是:它是一个“微”框架。”微”意味着Flask旨在保持核心的简单,但同时又易于扩展。默认情况下,Flask 不包含数据库抽象层、表单验证,或是其它任何...
  • Flask 框架入门

    千次阅读 2017-05-08 18:20:24
    Flask Flask是一个使用 Python 编写的轻量级 Web 应用框架。其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 。 安装 Flask
  • 在网页中使用for (flask框架

    万次阅读 2018-10-29 15:47:54
    网页端 云压,让世界更加庞大 午饭吃什么 {% if params.uname!='' %} 欢迎{{params.uname}} {% else %} 登录 {% endif %} {% for i in params.namelist %} ... {% for ke...
  • Python Flask框架

    千次阅读 2016-02-01 12:54:22
    Flask内置了jinja2,一个极具扩展性的模板系统。下面的例子展示如何在flask中使用jinja2. 创建一个templates的目录,将下面的代码存为flask1.html: Flask1 Example Say hello to my little friend: {{thing}}...
  • flask框架安装

    2018-07-22 22:28:13
    flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于接收http请求并对请求进行预处理,然后触发Flask框架,开发人员基于Flask框架提供的功能对...
  • Python 的 Flask 框架安装应用

    千次阅读 2017-04-09 20:19:43
    Flask是一个使用 Python 编写的轻量级 Web 应用框架。其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 ,使用 BSD 授权。Flask也被称为 “microframework” ,因为它使用简单的核心,用 extension 增加其他...
  • python 中使用flask框架

    2017-01-09 08:25:56
    求解答如何在flask框架中接受 ajax的传递过去的参数,试过了一些flask方法,但是获取值为None 求详细解答,谢谢!求详细解答,谢谢!求详细解答,谢谢!![图片说明]...
  • Flask框架和django框架的区别

    千次阅读 2019-05-16 20:05:08
    Flask框架简介 简介 Flask诞生于2010年,是Armin ronacher(人名)用Python语言基于Werkzeug工具箱编写的轻量级Web开发框架。它主要面向需求简单的小应用。 Flask本身相当于一个内核,其他几乎所有的功能都要用到...
  • Python Flask Web 框架入门

    万次阅读 多人点赞 2018-09-03 20:31:23
    Flask是一个轻量级的基于Python的web框架。 本文适合有一定HTML、Python、网络基础的同学阅读。 1. 简介 这份文档中的代码使用 Python 3 运行。 是的,所以读者需要自己在电脑上安装Python 3 和 pip3。建议安装...
  • 第一步:在Python虚拟环境中安装了bootstrap的Flask扩展:pip install flask-bootstrap, 第二步:在py文件中 ``` from flask import Flask, render_template from flask.ext.bootstrap import Bootstrap ...
  • Python Web 3 ——引入flask框架

    千次阅读 2016-06-17 11:01:50
    在python中比较好的Web框架主要有:flask和Django,但是Django框架太过复杂,不适用于初期的Web开发使用,所以我们还是选择比较轻量级的flask框架。 一、flask的安装:  之前说过在python中安装外部插件时,使用...
  • Python Flask框架入门

    千次阅读 2019-09-27 16:38:00
    Flask是一个轻量级的基于Python的web框架。 本文适合有一定HTML、Python、网络基础的同学阅读。 1. 简介 这份文档中的代码使用 Python 3 运行。 是的,所以读者需要自己在电脑上安装Python 3 和 pip3。建议安装...
  • Flask框架(flask中设置和获取session)

    千次阅读 2018-12-24 18:33:42
    1. session 数据是保存到后端的数据库中 2.session中的从狭义和广义上分:  (1)session,广义上 :  是一种机制:在前端当中存一个session_id ,在后端当中去保存  这份session的属性值,然后访问的时候只要能够...
  • 使用flask框架搭建python web实战

    千次阅读 多人点赞 2018-12-24 15:41:18
    最近学校实训,要求使用python制作一个简单的银行系统(就是在控制台输出的那种形式),个人觉得不太正规,然后就自己使用了flask框架搭建了一个简单的银行系统网站。 由于之前没有接触过python这次实训我们首先是...
  • Python3 Flask框架

    千次阅读 2018-09-10 17:26:43
    Flask框架 内容原创,侵权必究。学习分享请注明地址:https://blog.csdn.net/Jackie_ZHF/article/details/82592928 博主有时间会不定期更新大数据hadoop spark storm人工智能方面的博客 目录 一、What`s Flask ...
  • Flask 框架简单入门

    千次阅读 多人点赞 2018-10-17 13:59:45
    Flask框架介绍 Flask 框架 什么是Flask? flask是一种基于python ,并且依赖于Jinja2模板引擎(提供网页解析)和 Werkzeug WSGI服务(python web应用与web 服务之间的接口)的一种微型框架。其中: Jinja2模板引擎:通俗...

空空如也

1 2 3 4 5 ... 20
收藏数 65,219
精华内容 26,087
关键字:

flask