Flask 接口

news2024/11/22 2:59:13

目录

前言

代码实现

简单接口实现

执行其它程序接口

携带参数访问接口


前言

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


代码实现

导入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 Hexin

app = 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.coloradmin.cn/o/1223975.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LeetCode——字符串(Java)

字符串 简介[简单] 344. 反转字符串[简单] 541. 反转字符串 II[中等] 151. 反转字符串中的单词 简介 记录一下自己刷题的历程以及代码。写题过程中参考了 代码随想录。会附上一些个人的思路,如果有错误,可以在评论区提醒一下。 [简单] 344. 反转字符串…

AIGC创作系统ChatGPT源码,AI绘画源码,支持最新GPT-4-Turbo模型,支持DALL-E3文生图

一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如…

课程设计(毕业设计)—基于机器学习(CNN+opencv+python)的车牌识别—(可远程调试)计算机专业课程设计(毕业设计)

基于机器学习(CNNopencvpython)的车牌识别 下载本文机器学习(CNNopencvpython)的车牌识别系统完整的代码和参考报告链接(或者可以联系博主koukou(壹壹23七2五六98),获取源码和报告)https://download.csdn.net/download/shooter7/88548767此处…

操作系统·进程同步

进程同步:异步环境下的一组并发进程因直接制约而互相发送消息、互相合作、互相等待,使得各进程按照一定的速度执行的过程。 进程同步的主要任务是使并发执行的诸进程之间能有效地共享资源和相互合作,使执行的结果具有可再现性。 4.1 进程同…

智慧城市指挥中心,大屏幕究竟有什么用?

目前很多地区有在兴建智慧城市的项目,其城市指挥中心内一般都建有一张巨大的屏幕,这张屏幕究竟有什么用?是否可以用普通的电脑显示器进行代替呢? 智慧城市指挥中心内的巨大屏幕是智慧城市项目中的重要组成部分,其作用不…

​软考-高级-系统架构设计师教程(清华第2版)【第14章 云原生架构设计理论与实践(P496~526)-思维导图】​

软考-高级-系统架构设计师教程(清华第2版)【第14章 云原生架构设计理论与实践(P496~526)-思维导图】 课本里章节里所有蓝色字体的思维导图

Springboot+vue的应急物资管理系统(有报告),Javaee项目,springboot vue前后端分离项目

演示视频: Springbootvue的应急物资管理系统(有报告),Javaee项目,springboot vue前后端分离项目 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。…

【GUI】-- 09 JComboBox JList、JTextField JPasswordField JTextArea

GUI编程 03 Swing 3.6 列表 下拉框 package com.duo.lesson06;import javax.swing.*; import java.awt.*;public class ComboBoxDemo01 extends JFrame {public ComboBoxDemo01() throws HeadlessException {Container contentPane getContentPane();JComboBox<Object&…

Flutter 3.16 中带来的更新

Flutter 3.16 中带来的更新 目 录 1. 概述2. 框架更新2.1 Material 3 成为新默认2.2 支持 Material 3 动画2.3 TextScaler2.4 SelectionArea 更新2.5 MatrixTransition 动画2.6 滚动更新2.7 在编辑菜单中添加附加选项2.8 PaintPattern 添加到 flutter_test 3. 引擎更新&#xf…

STM32 HAL库函数HAL_SPI_Receive_IT和HAL_SPI_Receive的区别

背景 前段时间开发一个按键板驱动&#xff0c;该板用的STM32F103系列单片机&#xff0c;前任工程师用STM32CubeMX生成的工程&#xff0c;里面全是HAL库调用&#xff0c;我接手后&#xff0c;学习了下HAL库的用法&#xff0c;踩坑不少&#xff0c;特别是带IT后缀的函数&#xf…

S7-1200PLC 作为MODBUSTCP服务器通信(多客户端访问)

S7-1200PLC作为MODBUSTCP服务器端通信编程应用&#xff0c;详细内容请查看下面文章链接&#xff1a; ModbusTcp通信(S7-1200PLC作为服务器端)-CSDN博客文章浏览阅读239次。S7-200Smart plc作为ModbusTcp服务器端的通信S7-200SMART PLC ModbusTCP通信(ModbusTcp服务器)_s7-200 …

基于MS16F3211芯片的触摸控制灯的状态变化和亮度控制(11.17,PWM控制与状态切换)

1.今天做了什么 2.过程思路 看了两天文档才慢慢看懂&#xff0c;有点满了 现在接着前一天的思路&#xff0c;可以通过代码来控制pwm的占空比。我这里采用的是TP0定时器 初步控制pwm的占空比 void LED_PWM_OPEN(void) {//占空比 PWM1-Y-PB2PWM1DH 0X0F;PWM1DL 0X00; //占…

python3:turtle绘图 .2023-11-18

绘制一个菱形:四边相等且都为200像素;四个内角两边各为60度,上下各为120度 import turtle #导入turtle #画笔默认绘制方向为水平向右 turtle.right(-30) #画笔绘制方向向左(逆时针)旋转30度. turtle.fd(200) #画笔沿绘制方向绘制200像素长度 turtle.right(60) #画笔绘制方向在…

OSS服务和MinIO存储做一个区分解析

日落金山&#xff0c;明天我们继续… 什么是OSS服务和MinIO存储 OSS&#xff08;Object Storage Service&#xff09;和MinIO都是对象存储服务&#xff0c;但它们有一些区别。以下是对它们的简要分析&#xff1a; 1. 部署和管理&#xff1a; OSS&#xff1a; 由阿里云提供&a…

HDMI之EDID析义篇

DisplayID Type X Video Timing Data Block 实例 F0 2A 10 93 FF 0E 6F 08 8F 10 93 7F 07 37 04 8F 10该数据来源于SHARP AQUOS-TVE23A 4K144Hz电视机的第3个EDID块(基于HF-EEODB)。 定义 解释 VTDB 1: 3840x2160 144.000009 Hz 16:9 333.216 kHz 1343.527000 MHz (RBv3,h…

UE 程序化网格 计算横截面

首先在构造函数内加上程序化网格&#xff0c;然后复制网格体到程序化网格组件上&#xff0c;将Static Mesh&#xff08;类型StaticMeshActor&#xff09;的静态网格体组件给到程序化网格体上 然后把StaticMesh&#xff08;类型为StaticMeshActor&#xff09;Instance暴漏出去 …

python基础练习题库实验1

题目1 使用以下变量 product_code“377B” product_name“牛肉汤” product_size“250mL” product_price2.15 使用字符串加法编写一个print语句&#xff0c;以便生成以下精确输出&#xff1a; 377B&#xff1a;牛肉汤&#xff0c;250mL 代码 product_code "377B"…

深入了解Java 8 新特性:lambda表达式进阶

阅读建议 嗨&#xff0c;伙计&#xff01;刷到这篇文章咱们就是有缘人&#xff0c;在阅读这篇文章前我有一些建议&#xff1a; 本篇文章大概7000多字&#xff0c;预计阅读时间长需要10分钟。本篇文章的实战性、理论性较强&#xff0c;是一篇质量分数较高的技术干货文章&#…

这个双11,阿里云经历了可能是历史级的大故障!

2023年11月12日17&#xff1a;44开始&#xff0c;阿里云发生严重故障&#xff0c;导致阿里巴巴大量产品无法连接&#xff0c;一时间&#xff0c;“阿里云盘崩了”、“淘宝又崩了”、“闲鱼崩了”、“钉钉崩了”等话题相继登上热搜。 此外&#xff0c;像纳思云充电桩、乐爽coole…

Git安装与常用命令

Git简介&#xff1a; Git是一个开源的分布式版本控制系统&#xff0c;用于敏捷高效地处理任何或大或小的项目。Git是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源代码的版本控制软件。Git与常用的版本控制工具CVS、Subversion等不同&#xff0c;它采用了分布式…