一、创建程序实例注册路由

app.py

# 从flask包中导入flask类
from flask import Flask

# 实例化Flaskapp = Flask(__name__)


@app.route('/')
def index():
    return '&lt;h1&gt;Hello,Flask!<h1/&gt;'

Flask(name) 会使用当前模块名称作为参数以便确定程序根目录,从而能够找到静态文件夹模板文件夹

只需为函数附加app.route()装饰器,并传入URL规则做为参数我们就可以让URL和函数建立关联。这个过程我们称作注册路由路由负责管理URL和函数之间的映射,而这个函数则被称为视图函数

1. 为视图绑定绑定多个URL

一个视图函数可以绑定多个URL。比如下面访问’/‘和访问’/hello’都会触发index函数,得到相同响应

@app.route('/')
@app.route('/hello')
def index():
    return '<h1&gt;Hello,Flask!<h1/&gt;'
2. 动态URL

我们不仅可以为视图函数绑定多个URL,还可以在URL规则添加变量部分。
使用”<变量&gt;”的形式。flask处理请求时会把变量传入视图函数,我们可以添加参数获取这个变量值。如果用户访问url没有添加变量,此时会返回一个404错误,这时我们可以通过添加默认参数defaluts或者设置name默认值设置url变量默认值,以避免404错误。

@app.route('/')
@app.route('/hello/<name&gt;', defaults={'name': "zly"})
def index(name='zly'):
    return '<h1&gt;Hello,%s!<h1/&gt;' % name
二、启动开发服务器

flask内置一个简单开发服务器(由依赖包Werkzeug提供),足够在开发环境中使用。

flask run  # 启动开发服务器

在这里插入图片描述
在这里插入图片描述

1. 自动发现程序实例

启动开发服务器后,flask可以自动探测程序实例,自动探测以下规则

2. 管理环境变量

如果安装pythondotenv模块,那么在使用flask run 或其它命令时它自动从.flaskenv文件和.env文件中加载环境变量
优先级
手动设置环境变量>.env文件>.flaskenv文件
在这里插入图片描述
在.env文件中添加:

FLASK_RUN_HOST=0.0.0.0
FLASK_RUN_PORT=8000
3. 使用pycharm运行服务器

pycharm中,我们可以使用内置的命令行串口执行命令来启动开发服务器,也可以使用pycharm内置运行功能
在这里插入图片描述
按如上进行配置即可

4. 更多的启动选项
flask run --host=0.0.0.0

添加host选项,将主机地址设置为0.0.0.0使其对外可见。

flask run --port=8000

flask提供的服务默认监听5000端口,可通过传入port参数来改变监听端口
通过环境配置文件设置FLASK_RUN_HOST与FLASK_RUN_PORT来配置

5. 设置运行环境

开发环境时指我们在本地编写测试程序时的计算机环境,而生产环境是指网站部署上线供用户访问时的服务器环境。为了区分运行环境,Flask提供了一个FLASK_ENV的环境变量用来设置环境,默认production(生产环境)。可以将其改为development(开发环境),这会开启所有支持开发特性。同时可以通过FLASK_DEBUG来配置调试模式,1为开启,0为关闭
在.flaskenv文件中写入:

FLASK_ENV=development
FLASK_DEBUG=1

在这里插入图片描述
在开发环境、调试模式下,这时执行flask run 启动程序会自动激活werkzeug内置调试器以及重载器。

6. 调试器

调试器允许你在错误页面执行Python代码单击错误信息右侧的命令行图表,会弹出窗口要求输入PIN码,就是启动服务器时输出的PIN码,输入PIN码后,会有一个包代码上下文信息的shell,我们可以利用他来调试。
在这里插入图片描述

7. 重载

当我们对代码进行改动之后,期望行为就是这些改动立刻作用到程序上。重载器的作用就是监测文件变动然后重新启动服务器。
在这里插入图片描述
默认会使用werkzeug内置stat重载器。他的缺点是耗电严重,准确率低。推荐使用Python库Watchdog,安装后会自动使用它来监测文件变动

pipenv install watchdog --dev  # --dev的作用是声明为开发依赖

如果有单独的cssjs文件需要按下F5进行刷新才可。

原文地址:https://blog.csdn.net/qq_42369064/article/details/134712572

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_16777.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注