Python3,网站搭建之编写API接口,让前端页面展示数据!

简介: Python3,网站搭建之编写API接口,让前端页面展示数据!

1. 安装第三方模块


1.1 flask_restplus 安装

cmd窗口,直接pip安装


pip install flask_restplus

1.2 werkzeug 安装

cmd窗口,直接pip安装


pip install werkzeug == 0.16.0

这里说一下,为啥安装旧版本,因为新版本(1.0.1),和flask不兼容,

会出现这个报告:


ImportError: cannot import name 'cached_property' from 'werkzeug'

2. 编写api接口


2.1创建api

这段代码在apis文件夹下的__init__.py编写


init.py


# -*- coding: utf-8 -*-
"""
@ auth : carl_DJ
@ time : 2020-9-09
"""
from flask_restplus import Api
from PaperWeb.Services import app
#创建api
api = Api(
    app,
    version='0.1.0',
    title='papers api ',
    description='论文分享网站',
    # authorizations={}  #认证
    ui = True
)
#导入papers 所有的内容,以便方便执行
from PaperWeb.Services.apis.papers import  *

2.2 创建papers

这个文件,主要是编写创建api的处理逻辑

papers.py


# -*- coding:utf-8 -*-
"""
@ auth : carl_DJ
@ time : 2020-9-09
"""
#编写api逻辑
from flask_restplus import Resource
from PaperWeb.Services.apis import api
from flask import request
from PaperWeb.Services.models.papers import PaperModel
class PapaerParsers(object):
    #定义一个静态方法
    #静态方法的作用:不需要实例化类,就可以直接调用对应的方法
    @staticmethod
    def getpaperlist():
        #解析器
        parser =api.parser()
        #往解析器里面添加参数,required = True 表示必传项
        parser = parser.add_argument('index',type = int,help ='第几页',required = True)
        parser = parser.add_argument('count',type = int,help ='一页包含的数据',required = True)
        return  parser
#创建获取接口的列表的类
class PaperList(Resource):
    #运用装饰器,将解析器运用到get方法
    @api.expect(PapaerParsers.getpaperlist())
    def get(self):
        index = int(request.values.get('index',0))
        count = int(request.values.get('count',0))
        papers,has_next = PaperModel.get_paper(index, count)
        #字典的形式,返回给前端
        return {
            'status':200,
            'msg':'success',
            'data': papers,
            'index':index,
            'count':count,  #一页有多少个数据
            'has_next':has_next  #是否有下一页
        }
#创建搜索的类,主要对作者进行搜索
class PaperSearch(Resource):
    #获取数据
    def get(self):
    # 这部分内容,与PaperList方法内容一样,只不过是查询的对象不同,不做展开
        pass
#定义一个命名空间
ns = api.namespace('papers',description = '论文接口')
#把ns 加载到PaperList中
ns.add_resource(PaperList,'','/')
#把ns 加载到PaperSearch中
ns.add_resource(PaperSearch,'/author','/author/')

2.3 获取papers列表的内容

我们在Services文件夹下,创建models文件夹,同时创建PaperModel 类

作用是为了,获取数据库的数据

papers.py


# -*- coding:utf-8 -*-
"""
@ auth : carl_DJ
@ time : 2020-9-09
"""
from PaperWeb.Services.libs.mysql import db
class PaperModel(object):
    #静态方法的作用:不需要实例化类,就可以直接调用对应的方法
    @staticmethod
    def get_paper(index,count):
        #获得papers列表的内容
        sql = f'''
            SELECT
                id,title,url
            FROM
                papers
            WHERE
                is_delect =0
            LIMIT{(index -1) * count},{count+1}
        '''
        result = db.query(sql)
        if not result:
            return [],0
        if len(result) ==count +1:
            result.pop()
            has_next = 1  # 是否有下一页
        else:
            has_next = 0
        return result,has_next

编写完上面的代码,我们就可以直接运行main.py文件了

然后就是完美的页面展示了~ ~

image.png

image.png


3. 总结


到现在,除了页面样式,功能部分,已经分享的差不多了。

关于页面样式,咱的js确实无法跟前端大佬相提并论,

只要功能没问题,我觉得,还算合格!!

如果还不太清楚网站创建流程,小鱼在重新上链接,按照顺序点击,学习就好了。

1.《Python3,网站搭建之数据库表设计及数据存储!》


2.《Python3,网站搭建之构建Flask项目,带你启动web服务! !》


3.《Python3,网站搭建之编写API接口,让前端页面展示数据!》


目录
相关文章
|
7月前
|
JSON 缓存 算法
如何通过API获取1688商品类目数据:技术实现指南
1688开放平台提供alibaba.category.get接口,支持获取全量商品类目树。RESTful架构,返回JSON数据,含类目ID、名称、层级等信息。需注册账号、创建应用并授权。请求需签名认证,QPS限10次,建议缓存更新周期≥24小时。
680 2
|
7月前
|
JSON 安全 API
亚马逊商品列表API秘籍!轻松获取商品列表数据
亚马逊商品列表API(SP-API)提供标准化接口,支持通过关键词、分类、价格等条件搜索商品,获取ASIN、价格、销量等信息。采用OAuth 2.0认证与AWS签名,保障安全。数据以JSON格式传输,便于开发者批量获取与分析。
|
7月前
|
缓存 监控 前端开发
顺企网 API 开发实战:搜索 / 详情接口从 0 到 1 落地(附 Elasticsearch 优化 + 错误速查)
企业API开发常陷参数、缓存、错误处理三大坑?本指南拆解顺企网双接口全流程,涵盖搜索优化、签名验证、限流应对,附可复用代码与错误速查表,助你2小时高效搞定开发,提升响应速度与稳定性。
|
7月前
|
JSON API 数据格式
淘宝拍立淘按图搜索API系列,json数据返回
淘宝拍立淘按图搜索API系列通过图像识别技术实现商品搜索功能,调用后返回的JSON数据包含商品标题、图片链接、价格、销量、相似度评分等核心字段,支持分页和详细商品信息展示。以下是该API接口返回的JSON数据示例及详细解析:
|
7月前
|
自然语言处理 监控 API
速卖通商品详情API秘籍!轻松获取SKU属性数据
速卖通商品详情API(aliexpress.item.get)支持通过编程获取商品标题、价格、SKU、库存、销量、物流模板、评价及店铺信息,适用于价格监控、选品分析等场景。接口支持多语言返回,采用AppKey+AppSecret+Token认证,需签名验证,确保安全调用。
|
7月前
|
XML JSON API
苏宁商品详情API秘籍!轻松获取商品详情数据
苏宁商品详情API基于RESTful架构,支持JSON/XML格式,通过AppKey、AppSecret与签名三重认证,结合OAuth 2.0实现安全调用。开发者可获取商品名称、价格、销量、库存、促销等实时数据,适用于电商分析与商业智能。接口强制使用HTTPS协议,支持POST/GET请求,统一采用UTF-8编码,确保数据传输安全可靠。
|
7月前
|
安全 API
亚马逊商品详情 API 秘籍!轻松获取 SKU 属性数据
亚马逊商品详情API是官方接口,通过ASIN获取商品标题、价格、库存、评价等50余项数据,支持多站点查询。包含Product Advertising API与MWS两类,分别用于商品信息获取和卖家店铺管理,采用AWS4-HMAC-SHA256认证,保障请求安全。
|
7月前
|
人工智能 自然语言处理 测试技术
Apipost智能搜索:只需用业务语言描述需求,就能精准定位目标接口,API 搜索的下一代形态!
在大型项目中,API 数量庞大、命名不一,导致“找接口”耗时费力。传统工具依赖关键词搜索,难以应对语义模糊或命名不规范的场景。Apipost AI 智能搜索功能,支持自然语言查询,如“和用户登录有关的接口”,系统可理解语义并精准匹配目标接口。无论是新人上手、模糊查找还是批量定位,都能大幅提升检索效率,降低协作成本。从关键词到语义理解,智能搜索让开发者少花时间找接口,多专注核心开发,真正实现高效协作。
|
8月前
|
数据可视化 测试技术 API
从接口性能到稳定性:这些API调试工具,让你的开发过程事半功倍
在软件开发中,接口调试与测试对接口性能、稳定性、准确性及团队协作至关重要。随着开发节奏加快,传统方式已难满足需求,专业API工具成为首选。本文介绍了Apifox、Postman、YApi、SoapUI、JMeter、Swagger等主流工具,对比其功能与适用场景,并推荐Apifox作为集成度高、支持中文、可视化强的一体化解决方案,助力提升API开发与测试效率。
|
7月前
|
JSON 算法 API
Python采集淘宝商品评论API接口及JSON数据返回全程指南
Python采集淘宝商品评论API接口及JSON数据返回全程指南

推荐镜像

更多