flask 基础用法参考

本文介绍了Flask框架的基础用法,包括Flask扩展如SQLAlchemy、Migrate、Mail等的使用,以及创建虚拟环境、配置参数、路由设置、请求参数处理、文件上传和异常处理等核心功能。通过示例详细讲解了Flask应用的开发流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Flask扩展包:
Flask-SQLalchemy:操作数据库;
Flask-migrate:管理迁移数据库;
Flask-Mail:邮件;
Flask-WTF:表单;
Flask-script:插入脚本;
Flask-Login:认证用户状态;
Flask-RESTful:开发REST API的工具;
Flask-Bootstrap:集成前端Twitter Bootstrap框架;
Flask-Moment:本地化日期和时间;

1、创建虚拟环境
虚拟环境是一个互相隔离的目录
1.mkvirtualenv flask_py2 #创建虚拟环境
2.pip install flask==0.10.1 #安装flask

pip freeze > requirements.txt #在虚拟环境venv/Lib/site-pakages导出原有的需要的环境依赖模块
pip install –r requirements.txt#在未安装flask依赖包的虚拟环境venv/Lib/site-pakages下逐个安装依赖包

2、flask 基础范例

# coding:utf-8

# 导入Flask类
from flask import Flask

#Flask类接收一个参数__name__
app = Flask(__name__)

# 装饰器的作用是将路由映射到视图函数index
@app.route('/')
def index():
    return 'Hello World'

# Flask应用程序实例的run方法启动WEB服务器
if __name__ == '__main__':
    app.run()

3、初始化参数

import_name: 
static_url_path:
static_folder: 默认‘static’
template_folder: 默认‘templates’

4.1.2 配置参数

配置类范例:


class Config(object):
    # 连接数据库
    # SQLALCHEMY_DATABASE_URI = 'mysql://root:12345@127.0.0.1:3306/fk'  # 12345是数据库密码
    SQLALCHEMY_DATABASE_URI = 'sqlite:///' + os.path.join(basedir, 'fk.sqlite')
  # 12345是数据库密码
    # 设置sqlalchemy同步自动更新
    SQLALCHEMY_TRACK_MODIFICATIONS = True
    SECRET_KEY='DJSK'
    # 导入配置
app.config.from_object(Config)
app.config.from_pyfile(“yourconfig.cfg”)#配置文件yourconfig.cfg导入
app.config.from_object(Config)#配置类Config导入
app.config['key'] = value

4.1.3 在视图读取配置参数

app.config.get()  或者 current_app.config.get()

4.1.4 app.run的参数

app.run(host=”0.0.0.0”, port=5000)#还有许多其他参数

路由

4.2.1 app.url_map 查看所有路由
在这里插入图片描述
在这里插入图片描述
4.2.2 利用methods限制访问方式
@app.route(’/sample’, methods=[‘GET’, ‘POST’])
在这里插入图片描述
4.2.3 同一路由装饰多个视图函数
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
4.2.4 同一视图多个路由装饰器
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
4.2.5 使用url_for进行反解析
在这里插入图片描述
在这里插入图片描述
4.2.5 动态路由
获取路由中传递的参数,路由传递的参数默认当做string处理
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

整型:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Path 类型
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
4.3 获取请求参数

from flask import request

就是 Flask 中表示当前请求的 request 对象,request对象中保存了一次HTTP请求的一切信息。

args  get请求时,记录请求中的所有的参数,返回一个类字典格式数据类型。
form post 请求时, 记录请求中的所有的参数,返回一个类字典格式数据类型。

在这里插入图片描述
4.3.1 上传文件
已上传的文件存储在内存或是文件系统中一个临时的位置。你可以通过请求对象的 files 属性访问它们。每个上传的文件都会存储在这个字典里。它表现近乎为一个标准的 Python file 对象,但它还有一个 save() 方法,这个方法允许你把文件保存到服务器的文件系统上。这里是一个用它保存文件的例子:

from flask import request

@app.route('/upload', methods=['GET', 'POST'])
def upload_file():
    if request.method == 'POST':
        f = request.files['the_file']
        f.save('static/1.jpg')
    ...

如果你想知道上传前文件在客户端的文件名是什么,你可以访问 filename 属性。

@app.route('/upload', methods=['GET', 'POST'])
def upload():
    if request.method == 'POST':
        file_obj = request.files.get('pic')  # 返回一个file对象
        # 获取文件名称
        name = file_obj.filename
        print(name)
        file_obj.save('static/{}'.format(name))
        return '上传成功'

    return render_template('upload.html')


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

4.4 abort函数与自定义异常处理
4.4.1 abort函数
如果在视图函数执行过程中,出现了异常错误,我们可以使用abort函数立即终止视图函数的执行。通过abort函数,可以向前端返回一个http标准中存在的错误状态码,表示出现的错误信息。
使用abort抛出一个http标准中不存在的自定义的状态码,没有实际意义。如果abort函数被触发,其后面的语句将不会执行。其类似于python中raise。

from flask import abort

在这里插入图片描述
在这里插入图片描述
也可以向页面返回信息
在这里插入图片描述
在这里插入图片描述
4.4.2 自定义异常处理

@app.errorhandler(404)
def error(e):
    return '您请求的页面不存在了,请确认后再次访问!%s'%e

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值