初识 flask

flask是一个轻量级框架,它默认依赖2个外部库:Jinja2 模板、 WSGI工具集--Werkzeug

flask的使用特点是基本所有的工具使用都依赖于导入的形式去扩展,flask只保留了web开发的核心功能。

通常:我们学习一个web框架只需要学会 如何使用路由、如何使用视图函数与模板语法、如何导入数据库 就可以跑通一个web项目

安装Flask:pip install flask

安装Flash:pip install flask

1|0一、Werkzeug简介

代码示例:

from werkzeug.wrappers import Request, Response

'''
werkzeug是一个WISGI工具包。它可以作为一个web框架的底层库。
'''

@Request.application
def hello(request):
    print(request)
    return Response('Hello World!')

if __name__ == '__main__':
    from werkzeug.serving import run_simple

    # run_simple('127.0.0.1', 4000, hello)
    run_simple('localhost', 4000, hello)

2|0二、初识flask

小结:

1 app.run() 调用 werkzeug.serving的run_simple(host, port, self, **options)
2 self()等价于app(), app()调用Flask类的__call__方法
3 Flask类的__call__方法返回了 self.wsgi_app(environ, start_response)
4 flask程序的执行过程都在 self.wsgi_app(environ, start_response)中

3|0三、Debug模式
4|0四、导入配置的四种方式

flask中的配置文件是一个flask.config.Config对象(继承字典),默认配置为:

 {
        'DEBUG':                                get_debug_flag(default=False),  是否开启Debug模式
        'TESTING':                              False,                          是否开启测试模式
        'PROPAGATE_EXCEPTIONS':                 None,
        'PRESERVE_CONTEXT_ON_EXCEPTION':        None,
        'SECRET_KEY':                           None,
        'PERMANENT_SESSION_LIFETIME':           timedelta(days=31),
        'USE_X_SENDFILE':                       False,
        'LOGGER_NAME':                          None,
        'LOGGER_HANDLER_POLICY':               'always',
        'SERVER_NAME':                          None,
        'APPLICATION_ROOT':                     None,
        'SESSION_COOKIE_NAME':                  'session',
        'SESSION_COOKIE_DOMAIN':                None,
        'SESSION_COOKIE_PATH':                  None,
        'SESSION_COOKIE_HTTPONLY':              True,
        'SESSION_COOKIE_SECURE':                False,
        'SESSION_REFRESH_EACH_REQUEST':         True,
        'MAX_CONTENT_LENGTH':                   None,
        'SEND_FILE_MAX_AGE_DEFAULT':            timedelta(hours=12),
        'TRAP_BAD_REQUEST_ERRORS':              False,
        'TRAP_HTTP_EXCEPTIONS':                 False,
        'EXPLAIN_TEMPLATE_LOADING':             False,
        'PREFERRED_URL_SCHEME':                 'http',
        'JSON_AS_ASCII':                        True,
        'JSON_SORT_KEYS':                       True,
        'JSONIFY_PRETTYPRINT_REGULAR':          True,
        'JSONIFY_MIMETYPE':                     'application/json',
        'TEMPLATES_AUTO_RELOAD':                None,
    }
  • 方式一:
from  flask import Flask
app = Flask(__name__)

#方式一
app.debug=True
app.secret_key="asdjja"

@app.route("/")
def index():
    return "ok"

if __name__ == '__main__':
    app.run()
  • 方式二:以字典的形式
from  flask import Flask
app = Flask(__name__)

#方式二,以字典的形式
app.config['DEBUG']=True

@app.route("/")
def index():
    return "ok"

if __name__ == '__main__':
    app.run()
  • 方式三:以文件的形式
from  flask import Flask
app = Flask(__name__)

#方式三 ,以文件的形式
app.config.from_pyfile("settings.py")

@app.route("/")
def index():
    return "ok"

if __name__ == '__main__':
    app.run()

'''settings.py'''
DEBUG=True
  • 方式四:以类的形式
from  flask import Flask
app = Flask(__name__)

#方式四 ,以类的形式(*****)
app.config.from_object("settings.test")

@app.route("/")
def index():
    return "ok"

if __name__ == '__main__':
    app.run()

5|0五、返回数据的四种方式

from flask import Flask,render_template,redirect,jsonify,request
app=Flask(__name__)

'''
1 返回字符串
2 返回模板:render_template
3 跳转:redirect
4 返回 json

'''

@app.route("/")
def index():
    return "ojbk"

@app.route("/index")
def index1():
    return render_template("index.html")

@app.route("/home")
def home():
    return redirect("/index")

@app.route("/json")
def json1():
    data_dic={'name':"jason",'age':38}
    # 返回字典序列化为json串
    return jsonify(data_dic)

if __name__ == '__main__':
    app.run()

templates->index.html

模板文件夹的名字必须叫这个

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h1>用户列表</h1>
</body>
</html>

博客原文:https://www.cnblogs.com/XuChengNotes

原文地址:https://www.cnblogs.com/chanyuli/p/12153146.html

时间: 2024-10-07 09:38:35

初识 flask的相关文章

python之初识Flask

一.初识Flask Python三大主流Web框架对比 1.三大框架的特点 Django 主要特点是大而全,集成了很多组件,例如: Models Admin Form 等等, 不管你用得到用不到,反正它全都有,属于全能型框架 Tornado 主要特点是原生异步非阻塞,在IO密集型应用和多任务处理上占据绝对性的优势,属于专注型框架 Flask 主要特点小而轻,原生组件几乎为0, 三方提供的组件请参考Django 非常全面,属于短小精悍型框架 2.三大框架的优缺点 Django 通常用于大型Web应

Python进阶(四十九)-初识Flask Blueprint

Python进阶(四十九)-初识Flask Blueprint 前言   在进行Python Web开发时选择Flask框架.项目模块划分阶段,使用Blueprint(这里暂且称之为“蓝本”).Blueprint通过把实现不同功能的module分开,从而把一个大的application分割成各自实现不同功能的module.在一个Blueprint中可以调用另一个blueprint的view function, 但要加相应的blueprint名.   Blueprint还有其他好处,其本质上来说就

初识Flask

首先在学习flask的前提,我是使用了很久的django和tornado,现在在写总结也是本着工作后方便使用flask 少点东西,对flask的介绍和优点总结 1.安装 pip install flask 或者python setup.py install 2.测试是否安装成功 import flask 看有没有报错 安装成功

狗书无敌,天下第一(初识flask)

为什么选择使用flask? 和其他框架相比, Flask 之所以能脱颖而出,原因在于它让开发者做主,使其能对程序具有全面的创意控制. 在 Flask 中,你可以自主选择程序的组件,如果找不到合适的,还可以自己开发. Flask 提供了一个强健的核心, 其中包含每个 Web 程序都需要的基本功能,而其他功能则交给行业系统中的众多第三方扩展. 一句话概括就是flask不是一个高度定制化的web框架,你可以做到随心所欲,使用任何可能的扩展来完成你的项目. 狗书的代码已上传GitHub:Companio

python常用框架之一 Flask (1) 初识Flask

---恢复内容开始--- Flask Flask诞生于2010年,是Armin ronacher(人名)用 Python 语言基于 Werkzeug 工具箱编写的轻量级Web开发框架. Flask 本身相当于一个内核,其他几乎所有的功能都要用到扩展(邮件扩展Flask-Mail,用户认证Flask-Login,数据库Flask-SQLAlchemy),都需要用第三方的扩展来实现. 比如可以用 Flask 扩展加入ORM.窗体验证工具,文件上传.身份验证等.Flask 没有默认使用的数据库,你可以

Flask初识,第九篇,Flask中的蓝图

蓝图,听起来就是一个很宏伟的东西 在Flask中的蓝图 blueprint 也是非常宏伟的 它的作用就是将 功能 与 主服务 分开怎么理解呢? 比如说,你有一个客户管理系统,最开始的时候,只有一个查看客户列表的功能,后来你又加入了一个添加客户的功能(add_user)模块, 然后又加入了一个删除客户的功能(del_user)模块,然后又加入了一个修改客户的功能(up_user)模块,在这个系统中,就可以将 查看客户,修改客户,添加客户,删除客户的四个功能做成蓝图加入到客户管理系统中,本篇最后会做

Flask最强攻略 - 跟DragonFire学Flask - 第九篇 Flask 中的蓝图(BluePrint)

蓝图,听起来就是一个很宏伟的东西 在Flask中的蓝图 blueprint 也是非常宏伟的 它的作用就是将 功能 与 主服务 分开怎么理解呢? 比如说,你有一个客户管理系统,最开始的时候,只有一个查看客户列表的功能,后来你又加入了一个添加客户的功能(add_user)模块, 然后又加入了一个删除客户的功能(del_user)模块,然后又加入了一个修改客户的功能(up_user)模块,在这个系统中,就可以将 查看客户,修改客户,添加客户,删除客户的四个功能做成蓝图加入到客户管理系统中,本篇最后会做

一篇博客带你入门Flask

一. Python 现阶段三大主流Web框架 Django Tornado Flask 对比 1.Django 主要特点是大而全,集成了很多组件,例如: Models Admin Form 等等, 不管你用得到用不到,反正它全都有,属于全能型框架 2.Tornado 主要特点是原生异步非阻塞,在IO密集型应用和多任务处理上占据绝对性的优势,属于专注型框架 3.Flask 主要特点小而轻,原生组件几乎为0, 三方提供的组件请参考Django 非常全面,属于短小精悍型框架 Django 通常用于大型

Flask中的蓝图(BluePrint)、

蓝图 1.初识Flask蓝图(BluePrint) 创建一个项目然后将目录结构做成: user.py中的内容 from flask import Blueprint, render_template # 导入Flask中的蓝图BluePrint模块 # 实例化一个蓝图对象 users_blue = Blueprint('users', __name__, template_folder='user_temp', url_prefix='/user') # 这里添加路由和视图函数的时候与在Flas