flask web开发学习之初识flask(二)

文章目录

        • 一、创建程序实例并注册路由
          • 1. 为视图绑定绑定多个URL
          • 2. 动态URL
        • 二、启动开发服务器
          • 1. 自动发现程序实例
          • 2. 管理环境变量
          • 3. 使用pycharm运行服务器
          • 4. 更多的启动选项
          • 5. 设置运行环境
          • 6. 调试器
          • 7. 重载器


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

app.py

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

# 实例化Flask类
app = Flask(__name__)


@app.route('/')
def index():
    return '

Hello,Flask!

'

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

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

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

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

@app.route('/')
@app.route('/hello')
def index():
    return '

Hello,Flask!

'

2. 动态URL

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

@app.route('/')
@app.route('/hello/', defaults={'name': "zly"})
def index(name='zly'):
    return '

Hello,%s!

' % name

二、启动开发服务器

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

flask run  # 启动开发服务器

在这里插入图片描述
flask web开发学习之初识flask(二)_第1张图片

1. 自动发现程序实例

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

  • 从当前目录寻找app.py和wsgi.py模块,并从中寻找app或application的程序实例。
  • 从环境变量FLASK_APP对应的模块/导入路径寻找名为app或application的程序实例。
2. 管理环境变量

如果安装了python-dotenv模块,那么在使用flask run 或其它命令时它自动从.flaskenv文件和.env文件中加载环境变量。
优先级:
手动设置的环境变量>.env文件>.flaskenv文件
flask web开发学习之初识flask(二)_第2张图片
在.env文件中添加:

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

在pycharm中,我们可以使用内置的命令行串口执行命令来启动开发服务器,也可以使用pycharm内置的运行功能。
flask web开发学习之初识flask(二)_第3张图片
按如上进行配置即可。

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 web开发学习之初识flask(二)_第4张图片
在开发环境、调试模式下,这时执行flask run 启动程序会自动激活werkzeug内置的调试器以及重载器。

6. 调试器

调试器允许你在错误页面上执行Python代码。单击错误信息右侧的命令行图表,会弹出窗口要求输入PIN码,就是启动服务器时输出的PIN码,输入PIN码后,会有一个包含代码上下文信息的shell,我们可以利用他来调试。
flask web开发学习之初识flask(二)_第5张图片

7. 重载器

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

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

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

你可能感兴趣的:(flask学习,flask,前端,学习)