栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Flask

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Flask

 

Flask 的介绍 Flask 是一款发布于 2010 年非常流行的 Python Web 框架。 特点 1 微框架、简洁,给开发者提供了很大的扩展性。 2 Flask 和相应的插件写得很好,用起来很爽。 开发效率非常高,比如使用 SQLAlchemy 的 ORM 操作数据库可以节省开发者大量书写 sql 的时 间。 3 Flask 的灵活度非常之高,他不会帮你做太多的决策,很多都可以按 照自己的意愿进行更改。 Extensions — Flask Documentation (2.1.x) (palletsprojects.com)  官网文档 Flask-SQLalchemy :操作数据库; Flask-script :插入脚本; Flask-migrate :管理迁移数据库; Flask-Session : Session 存储方式指定; Flask-WTF :表单; Flask-Mail :邮件; Flask-Bable :提供国际化和本地化支持,翻译; Flask-Login :认证用户状态; Flask-OpenID :认证; Flask-RESTful :开发 REST API 的工具; Flask-Bootstrap :集成前端 Twitter Bootstrap 框架; Flask-Moment :本地化日期和时间; Flask-Admin :简单而可扩展的管理接口的框架

 

第一个flask程序

app = Flask(__name__)
@app.route("/")
def index():
    return "hello world"
if __name__ == '__main__':
    app.run()
提示 如果想在同一个局域网下的其他电脑访问自己电脑上的 Flask 网 站,需要设置 host='0.0.0.0' 才能访问得到 通过命令运行 flask run - h 0.0.0.0 - p 8000 相应的命令

 

Debug模式与配置参数加载
@app.route('/')
def hello_world():
  a = 1
  b = 0
  c = a/b
  return 'Hello World!'
if __name__ == '__main__':
  app.run()

开启debug模式 

app.run(debug = True)

通过修改配置参数 config
app.config.update(DEBUG=True)
# app.config['DEBUG'] = True
app.run()
123
通过 mapping 加载
app.config.from_mapping({'DEBUG':True})
app.run()
通过配置对象设置 config
class Config:
    DEBUG = True
app.config.from_object(config)
app.run()
通过配置文件设置 config URL与函数的映射(动态路由)

 

URL 路径参数 比如,有一个请求访问的接口地址为 /users/11001 ,其中 11001 实际上为 具体的请求参数,表明请求 11001 号用户的信息。 此时如何从 url 中提取出 11001 的数据?
@app.route('/users/')
def user_info(user_id):
    print(type(user_id))
    return 'hello user{}'.format(user_id)
其中 ,尖括号是固定写法,语法为 , variable 默认的 数据类型是字符串。 如果需要指定类型,则要写成 converter:variable 其中 converter 就是类型名称,可以有以下几种 string : 如果没有指定具体的数据类型,那么默认就是使用 string 数据类型。 nt: 数据类型只能传递 int 类型。 float: 数据类型只能传递 float 类型。 path: 数据类型和 string 有点类似,都是可以接收任意的字符串,但是 path 可以接收路径,也就 是说可以包含斜杠。 uuid: 数据类型只能接收符合 uuid 的字符串。 uuid 是一个全宇宙都唯一的字符串,一般可以用来 作为表的主键。   any: 数据类型可以在一个 url 中指定多个路径。例如:
@app.route('/users/') 2 def user_info(user_id):
    print(type(user_id))
    return f'正在获取 ID {user_id} 的用户信息' 567 @app.route('/users/')  def user_info(user_id):
    print(type(user_id))
    return f'hello user {user_id}'

自定义转换器
from werkzeug.routing import BaseConverter
class MobileConverter(BaseConverter):
    """
   手机号格式
   """
    regex = r'1[3-9]d{9}'

 

to_python 在转换器类中,实现 to_python(self,value) 方法,这个方法的返回值,将会 传递到 view 函数中作为参数 to_url 在转换器类中,实现 to_url(self,values) 方法,这个方法的返回值,将会在 调用 url_for 函数的时候生成符合要求的 URL 形式

 

PostMan的使用

 

Postman 一款非常流行的 API 调试工具。其实,开发人员用的更多。 因为测试人员做接口测试会有更多选择,例如 Jmeter 、 soapUI 等。 不过,对于开发过程中去调试接口, Postman 确实足够的简单方 便,而且功能强大
from flask import Flask,request
 app = Flask(__name__) 45 @app.route('/') 6 def index():
    wd = request.args.get('wd') 8    ie = request.values.get('ie') 9    return f"Hello! {wd} == {ie}"

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

上传文件
from flask import request
 @app.route('/upload', methods=['POST'])
 def upload_file():
    f = request.files['pic']     # with open('./demo.png', 'wb') as
new_file:
    #     new_file.write(f.read())
    f.save('./demo.png')     
    return '上传成功!'

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1000763.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号