美文网首页Python
教你用flask创建第一个应用

教你用flask创建第一个应用

作者: 小志Codings | 来源:发表于2021-04-27 20:52 被阅读0次

1.1 初始化

所有flask应用都必须创建一个应用实例。Web服务器使用一种名为web服务器网关接口(WSGI, Web server gateway interface)的协议,把接收自客户端的所有请求都转交给这个对象处理。应用实例是flask类的对象,通常由下面的代码所创建:

from flask import Flask
app = Flask(__name__)

Flask类的构造函数只有一个必须指定的参数,即应用主模块或包的名称。

from flask import Flask

print(__name__)                       

运行结果

__main__

在每一个程序里面一般都有一个程序的主入口

if __name__ == "__main__"

所以你应该明白为什么打印出来的结果是

__main__

其实就是主模块或者是包的名称

1.2 路由和视图函数

客户端(例如web浏览器)把请求发送给web浏览器,web浏览器再将请求发送给flask应用实例。应用实例需要知道对每个url的请求需要运行哪些代码到Python函数的映射关系。处理url和函数之间的关系的程序称为路由

在flask应用中定义路由的最简便的方式是使用应用实例提供的app.route装饰器,下面的代码就说明了如何使用装饰器声明路由:

@app.route('/')
def index():
    return '<h1>Hello world</h1>'

上面的程序将index()函数注册成为应用根地址的处理程序。

index()这样处理入站请求的函数称为视图函数,如果应用部署在域名为www.example.com的服务器上,在浏览器中访问该网站,会触发服务器执行index()函数,这个函数的返回值,就是响应值

在每一次访问网站的时候,你会发现网站的地址是会改变的,Flask支持这种形式的URL,只要在app.route装饰器中使用特殊的语法之后就可以实现。

@app.route('/user/<name>')
def index(name):
    return '<h1>Hello, {}</h1>'.format(name)

路由URL中放在尖括号里面的内容就是动态部分。调用该函数时flask会奖动态部分作为参数,传入index()函数。

路由的动态部分默认是字符串,当然也可以是其他类型,例如:/user/<int:id>,只会匹配动态片段id为整数的URL,例如:/user/123

1.3 一个完整的应用

确保在flasky文件夹内,创建一个hello.py脚本,定义一个应用实例、一个路由和一个视图函数。

from flask import Flask
app = Flask(__name__)

@app.route('/')
def index():
    return '<h1>Hello world</h1>'

1.4 Web开发服务器

flask应用自带的web服务器,通过flask run命令启动。这个命令在FLASK_APP环境变量指定的Python脚本中寻找应用实例。

若想要启动手把手教你从0到1学会flask写的hello.py应用,首先确保创建的虚拟环境已经激活,而且里面安装了flask。Linux和macOS启动下述命令启动web服务器

(venv) $ export FLASK_APP=hello.py
(venv) $ flask run 

服务器启动之后便开始轮询、处理请求。按Ctrl+C键停止服务器,轮询才开始停止。

服务器运行时,在web浏览器的地址栏中输入http://127.0.0.1:5000

如果在URL后面再输入任何内容,应该不知道如何处理,会向浏览器返回错误代码404,这个错误,就是当你访问不存在的网页时就会见到

1.5 动态路由

在浏览器中访问这个动态路由,你会看到一条个性化信息,包含你在url提供的名字

from flask import Flask


app = Flask(__name__)
@app.route('/')
def index():
    return '<h1>Hello world</h1>'


@app.route('/user/<name>')
def user(name):
    return '<h1>hello, {} !</h1>'.format(name)

在浏览器输入http://127.0.0.1:5000/user/jack

1.6 调试模式

flask应用可以在调试模式中运行,开发服务器默认会加载两个便利的工具,重载器调试器

启动重载器之后,flask会监视项目中的所有源码文件,发现变动时会重启服务器。在开发过程中运行启动重载器和服务器特别方便,因为每次修改源码文件之后,服务器会重启,让改动生效。

调试器是一个基于web的工具,当应用抛出来处理异常时,它会浏览器中。此时,web浏览器变成一个交互式栈跟踪,你可以在里面审查代码。

调试模式默认禁用。若想启用,在执行flask run命令之前设定FLASK_DEBUG=环境变量

(venv) $ export FLASK_APP=hello.py
(venv) $ export FLASK_DEBUG=
(venv) $ flask run

==千万不要在生产服务器中启动调试模式。客户端可以通过调试器请求执行远程代码,因此可能导致生产服务器遭到攻击!!==

相关文章

  • 教你用flask创建第一个应用

    1.1 初始化 所有flask应用都必须创建一个应用实例。Web服务器使用一种名为web服务器网关接口(WSGI,...

  • Flask01-基础

    from flask import Flask 创建该类的实例,第一个参数是应用模块或者包的名称。如果你使用单一的...

  • Flask对象初始化参数

    Flask程序实例在创建对象的时候。需要默认传人当前Flask程序所指定的包(模块),Flask应用程序在创建的时...

  • 创建第一个flask应用

    开发工具:pycharm 打开pycharm,选择新建项目,选择flask项目 点击“create”,弹出窗口中选...

  • 2018-05-28

    flask 笔记 创建 flask instance(也就是一个应用)两种方式:1. (module) 在URL\...

  • [easy-flask]快速创建Restful风格的Flask后

    easy-flask 通过命令行快速创建flask应用~项目地址:https://github.com/GuoTe...

  • 安装Flask创建应用

    安装 电脑已经安装了python所以直接使用pip安装flask。 我使用的Anaconda程序,自带python...

  • Flask框架(二)第一个程序

    第一个Flask程序 程序解释 参数__name__表示Flask应用的主模块或包的名称。Flask使用该参数确定...

  • flask教程之第一个应用的代码讲解

    上一篇我们创建了第一个简单的flask应用程序,这一篇我们来看一下,这个最简单的应用程序都做了哪些事 1. 第一...

  • flask分布式部署session的保存方案

    flask 默认的 session 是怎么实现的 flask 作为 web 应用框架若多机部署,第一个问题是需要一...

网友评论

    本文标题:教你用flask创建第一个应用

    本文链接:https://www.haomeiwen.com/subject/gmbprltx.html