当前位置: 首页 > news >正文

Flask 接口

目录

前言

代码实现

简单接口实现

执行其它程序接口

携带参数访问接口


前言

有时候会想着开个一个接口来访问试试,这里就给出一个基础接口代码示例


代码实现

导入Flask模块,没安装Flask 模块需要进行

安装:pip install flask 

使用镜像安装: pip install -i https://pypi.tuna.tsinghua.edu.cn/simple flask

from flask import Flask

简单接口实现

这里是一个简单的接口代码

from flask import Flask
app = Flask(__name__)@app.route('/crawl', methods=['post'])
def crawl():result = '这个是自己的一个接口'print(result)return result  # 返回一个响应给请求方if __name__ == '__main__':app.run()
  • app.run() : 运行接口代码
  • @app.route('/crawl', methods=['post']) : 支持post 访问接口,执行crawl 函数
  • Flask(__name__):使用Flask框架创建一个Flask应用程序的实例

其中'crwl'是接口访问路径,访问这个接口之后就会调用的函数,也就是他是什么,就会调用相对应的函数。若改为xxx 那么就会调用名为xxx函数

运行代码显示

这个访问的url 是自己的本地IP以及默认接口:http://127.0.0.1:5000/crawl

访问结果

执行其它程序接口

我们写了一个爬虫程序,想要访问的时候就需要执行爬虫程序,那么就得现将爬虫程序导入进来,之后再执行函数里面调用就ok啦

直接上代码

from flask import Flask
from HeX import Hexin
app = Flask(__name__)@app.route('/crawl', methods=['post'])
def crawl():result = Hexin.get_data()print(result)return result  # 返回一个响应给请求方if __name__ == '__main__':app.run()

其中,Hexin.get_data() 是自己爬虫程序,这里就不展示访问结果

携带参数访问接口

上代码

from flask import Flask, request, jsonify
from res import Hexinapp = Flask(__name__)@app.route('/crawl', methods=['POST'])
def crawl():param_value = request.form.get('page')result = Hexin(page=param_value).get_data()return jsonify(result)@app.route('/crawl', methods=['GET'])
def crawl():param_value = request.form.get('page')result = Hexin(page=param_value).get_data()return jsonify(result)if __name__ == '__main__':app.run(port=55317, host='0.0.0.0') 

  • port: 访问端口 ,介于 1 到 65535 之间的整数

当post设置为0时候,Flask会随机性给你配置一个未被占用端口

  • host='0.0.0.0': 这里是设置访问接口IP为自己的IP

比如说我的IP地址是192.168.26.178,那么开的接口就是:192.168.26.178:端口号/crawl

  •  request.form.get('page') : 获取到访问者携带参数中page变量

需要访问者自己携带一个page变量参数,需要携带什么可以自己定义

  • jsonify(result) :将字符串转为json 格式数据,类似Python 中json模块

当然了需要携带参数,这个直接使用浏览器访问,是访问不了的,因为他没携带参数

这里就可以自己写代码访问就行

访问例子:

访问接口一般在执行之后都能看到,参照上面简单接口

http://www.lryc.cn/news/234707.html

相关文章:

  • Vue3 toRef函数和toRefs函数
  • 【论文阅读】(VAE-GAN)Autoencoding beyond pixels using a learned similarity metric
  • verilog之wire vs reg区别
  • 力扣面试经典150题详细解析
  • 【Java 进阶篇】唤醒好运:JQuery 抽奖案例详解
  • 数据处理生产环境_利用MurmurHash3算法在Spark和Scala中生成随机颜色
  • 便利工具分享:一个proto文件的便利使用工具
  • LeetCode704.二分查找及二分法
  • 2023年R1快开门式压力容器操作证模拟考试题库及R1快开门式压力容器操作理论考试试题
  • 探索NLP中的核心架构:编码器与解码器的区别
  • 解决:Error: Missing binding xxxxx\node_modules\node-sass\vendor\win32-x64-83\
  • 科研学习|科研软件——面板数据、截面数据、时间序列数据的区别是什么?
  • 【UE5】物体沿样条线移动
  • Qt控件按钮大全
  • 软件工程--软件过程学习笔记
  • 高校教师资格证备考
  • Git通过rebase合并多个commit
  • ROS 学习应用篇(八)ROS中的坐标变换管理之tf广播与监听的编程实现
  • 计算机算法分析与设计(23)---二分搜索算法(C++)
  • 前置语音群呼与语音机器人群呼哪个更好
  • 『Element Plus の 百科大全』
  • P3879 [TJOI2010] 阅读理解- 字典树
  • upgrade k8s (by quqi99)
  • CronExpression
  • 释放机器人潜力,INDEMIND深耕底层技术
  • 【ES6标准入门】JavaScript中的模块Module语法的使用细节:export命令和imprt命令详细使用,超级详细!!!
  • 流量2----2
  • 人工智能发展前景
  • 编写程序,要求输入x的值,输出y的值。分别用(1)不嵌套的if语句(2)嵌套的if语句(3)if-else语句(4)switch语句。
  • AcWing 4520:质数 ← BFS