php mysql网站开发全程实例,合肥网站建设优化学习,天津通信网站建设,网站seo诊断前言
学习使用一个新工具#xff0c;首先找一段代码学习一下#xff0c;基本掌握用法#xff0c;然后再考虑每一部分是做什么的 Flask的初始化
app Flask(__name__)#xff1a;初始化#xff0c;创建一个该类的实例#xff0c;第一个参数是应用模块或者包的名称 app… 前言
学习使用一个新工具首先找一段代码学习一下基本掌握用法然后再考虑每一部分是做什么的 Flask的初始化
app Flask(__name__)初始化创建一个该类的实例第一个参数是应用模块或者包的名称 app.route()的用法
app.route(/detect, methods[POST])通过使用route()装饰器的方法定义一个路由地址/detect是接口的uri使用 route() 装饰器告诉 Flask 什么样的URL能触发我们的函数这个函数的名字也在生成 URL 时被特定的函数采用这个函数返回我们想要显示在用户浏览器中的信息methods[POST]表示只接受POST方法访问methods[GET]表示只接受GET方法访问methods[POST, GET]表示两种方法都接受。 app.run的用法
app.run(host0.0.0.0, port1000,debugTrue)用 run() 函数来让应用运行在本地服务器上。其中host为要监听的主机名 默认为127.0.0.1localhost设置为“0.0.0.0”以使服务器在外部可用port是设置的端口号port不填的话默认5000debug默认为false如果设置为true则提供调试信息若是在docker中使用记得docker要把对应的端口映射到主机 python和flask中返回JSON数据的方法如下
字典转化为JSON的数据格式return json.dumps(result_dict,ensure_asciiFalse) #result_dict为字典数据使用json转换的在前端显示的数据为JSON字符串
使用flask的jsonify转换后在前台显示的为JSON对象return jsonify(result_dict) 快速启动一个flask接口
使用这个环境
//略这里涉及到工作环境了
在这个目录下使用python3
/home/work/miniconda3/envs/bfc38/bin
实操
这里涉及工作环境略基本上就是找到python3的目录之后一定要调用对应的目录比如这里是/home/work/miniconda3/envs/bfc38/bin
就用 /home/work/miniconda3/envs/bfc38/bin/python3 test.py 来调用你想调用的py文件即可 from flask import Flask
app Flask(__name__)
app.route(/)
def index():
return hello flask!
if __name__ __main__:
app.run(host0.0.0.0, port8877, debugTrue) 复制地址拿到浏览器里跑一下出现hello flask说明跑通了
运行过程中修改文件并保存的话出现语法错误会导致脚本终止
注debugTrue的用法
在 Flask 中debug 参数用于启动调试模式。当 debug 设置为 True 时Flask 会在发生错误时提供详细的调试信息同时还会监视文件的变化使得您在修改代码后不必重新启动服务器。
在生产环境中建议将 debug 设置为 False因为调试模式可能会泄漏敏感信息并且不适用于处理大量请求的情况。在生产环境中最好使用一个成熟的服务器如Gunicorn或uWSGI并将 Flask 的调试模式关闭。
在开发阶段启用调试模式可以更容易地发现和解决问题因为它提供了有关代码执行过程中发生的错误的详细信息。但请务必在生产部署之前禁用调试模式以提高安全性。 详解flask接口测试
首先需要引入request包
from flask import request 如何关闭一个flask脚本
ps -af | grep python
找到对应进程的PID然后使用kill PID杀掉对应的进程即可
注这里的第二列就是PID通过查看该进程对应的文件确定哪个是目标进程
(后续应该要系统学习一下linux的相关用法倒不是不会用就是不太熟)
1、需要对请求头进行测试
使用request.header获取请求头中的数据比如请求头里面有一个test参数那就是
args request.header -- 这一步相当于取得了全部的请求头
之后使用args.get(test)取得test这个key里面的值
test里面可以替换成任意请求头其实就是一个字典or map用get取得key对应的value就可以了下面的其他情况同理
2、需要对请求体进行测试 默认的表单application/x-www-form-urlencoded使用request.form 如果是jsonapplication/json request.json取出所有的键值对
具体哪种需要看请求头中的Conternt-Type 当然也有可能是其他的下面补充一下常见的http请求数据类型Content-Type
Content-type 定义了 http 请求的数据类型。
如果设置在请求头中则定义的是请求体的数据类型
如果设置在响应头中则定义的是响应体的数据类型
请求头--Request-Headers一般我们在 post 请求中会向服务器发送一些参数那我们就可以通过这个参数设置 post 的参数格式
application/jsonJSON 数据格式
application/x-www-form-urlencoded表单默认的提数据格式
multipart/form-data一般用于文件上传
响应头--Response-Headers响应头里的 Content-Type 参数会告诉我们响应数据的格式一般我们可以在请求头里面设置我们想要的数据格式Accept
以下是常见的Content-Type
text开头
text/html HTML格式
text/plain纯文本格式
text/xml XML格式
图片格式
image/gif gif 图片格式
image/jpeg jpg 图片格式
image/pngpng 图片格式
application开头
application/xhtmlxmlXHTML 格式
application/xmlXML 数据格式
application/atomxmlAtom XML 聚合格式
application/jsonJSON 数据格式
application/pdfpdf 格式
application/mswordWord 文档格式
application/octet-stream二进制流数据如常见的文件下载
application/x-www-form-urlencoded表单发送默认格式
媒体文件
audio/x-wavwav文件
audio/x-ms-wmaw文件
audio/mp3mp3文件
video/x-ms-wmvwmv文件
video/mpeg4mp4文件
video/aviavi文件
3、需要对url中附带的请求参数进行测试
请求参数是指
http://127.0.0.1:5000/query?id1 里面的 「id1」这部分
需要用request.arg提取这部分参数之后的处理和第一条一样
示例 app.route(/query) # http://127.0.0.1:5000/query?id1namezhangsan
def query():
args request.args # args 请求的参数
args_dict args.to_dict() # 获取请求参数 字典格式
name args.get(name)
print(args) # [(id, 1), (name, zhangsan)]
print(args_dict) # {id: 1, name: zhangsan}
print(name) # zhangsan
return 查询参数 姓名%s % name
4、获取固定参数 app.route(/fixed/int:id/name)
def fixed(id, name):
print(id)
print(name)
return 固定参数
5、补充
可供参考
Flask基础请求数据获取与响应_flask获取前端数据-CSDN博客
Flask中获取参数(路径查询请求体请求头)-CSDN博客
基于Flask进行接口开发及测试_chrome测试 flask接口-CSDN博客