Flask Web开发实战(一)初识Flask

1.1 搭建开发环境

1.1.1 Pipenv工作流

  1. 安装pip和pipenv

    $ pip install pipenv
    

    linux全局安装pipenv

    $ sudo -H pip install pipenv
    
  2. 创建虚拟环境
    创建想项目文件夹,执行以下语句

    $ pipenv install
    

    pipenv常用命令

    作用
    ipenv shell显式地激活虚拟环境
    ipenv graph查看依赖关系
    ipenv --venv查看项目对应的虚拟环境路径
  3. 管理依赖
    在创建虚拟环境时,如果项目根目录下没有Pipfile文件,pipenv install命令还会在项目文件根目录下创建PipfilePipfile.lock文件,前者用来记录项目依赖包列表,后者记录了固定版本的详细依赖包列表。当用pipenv安装/删除/更新依赖包时,pipenv以及pipenvfile.lock文件就会自动更新。

1.1.2 安装Flask

$ pipenv install flask

Flask的依赖包:

名称说明
Jinja2模板渲染引擎
MarkupSafeHRML字符转移工具
WerkzeugWSGI工具集,处理请求与响应,内置WSGI开发服务器、调试器和重载器
click命令行工具
itsdangerous提供各种加密签名功能

更新包:

$ pipenv update flask

1.1.3 集成开发环境

pycharm安装不作赘述。

1.2 Hello,Flask!

app.py文件:

from flask import Flask
app = Flask(__name__)

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

1.2.1 创建程序实例

Flask类是Flask的核心类,它提供了很多与程序相关的属性和方法

1.2.2 注册路由

  1. 为视图绑定多个URL:一个视图函数可以绑定多个URL
  2. 动态URL:在url规则中添加变量
@app.route('/greet/<name>')
def greet(name):
	pass

1.3 启动开发服务器

1.3.1 Run Flask

$ flask run

默认:127.0.0.1:5000

旧的启动开发服务器的方式是使用app.run()方法,目前已不推荐使用。

  1. 自动发现程序实例
    ①从当前目录寻找app.py和wsgi.py模块,并从中寻找名为app或application的程序实例。
    ②从环境变量FLASK_APP对应的模块名/导入路径寻找为app或application的程序实例。
    创建环境变量:
    linux
$ export FLASK_APP=hello

windows:

> set FLASK_APP=hello
  1. 管理环境变量
$ pipenv install python-dotenv

Flask的自动发现程序实例机制还有第三条规则:如果安装了python-dotenv,那么在使用flask run或其他命令时会使用它从.flaskenv文件和.env文件中加载环境变量。

加载环境变量的优先级:
手动设置的环境变量>.env中设置的环境变量>.flaskenv设置的环境变量

<kbd>.env</kbd>:包含敏感信息环境变量
<kbd>.flaskenv</kbd>:包含flask相关的环境变量
  1. 使用pycharm运行服务器
    ①点击左侧+符号打开下拉列表
    ②新建一个python类型的运行配置
    ③勾选“Single instance only”
    ④将第一项配置字段通过下拉选项选为“Module Name”
    ⑤填入模块名称flask
    ⑥第二栏“Parameters”填入命令run,也可以附加其他启动选项
    ⑦在“working directory”字段中选择程序所在的目录为工作目录

1.3.2 更多的启动选项

  1. 使服务器外部可见
    对应环境变量:FLASK_RUN_HOST
$ flask run --host=0.0.0.0
  1. 改变默认端口
    对应环境变量:FLASK_RUN_PORT
$ flask run --port=5888

1.3.3 设置运行环境

开发环境和生产环境:默认为生产环境。
环境变量配置:写到.flaskenv文件中

FLASK_ENV=development/production

如果你想单独控制调试模式的开关,可以通过设置FLASK_DEBUG

FLASK_DEBUG=1/0
  1. 调试器:当程序报错,点击错误页面中报错行后的小窗口打开包含上下文信息的python shell
  2. 重载器:当对代码做了修改之后,希望立马生效,安装watchdog
$ pipenv install watchdog --dev

1.4 Python Shell

$ flask shell

1.5 Flask扩展

1.6 项目配置

app.config['ADMIN_NAME'] = 'Peter'

配置的名称必须是全大写形式,小写的变量不会被读取

1.7 URL与端点

@app.route('/')
def index():
	pass
	
url_for('index') # 获取对应的URL,即“?”

使用url_for()函数生成的URL是相对URL。

1.8 Flask命令

使用装饰器创建自定义命令

@app.cli.command()
def hello():
	click.echo('Hello, Human!')

1.9 模板与静态文件

1.10 Flask与MVC框架

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值