flask 基础用法参考

    xiaoxiao2025-02-14  35

    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

    最新回复(0)