APIインターフェースの作成
Xiao Diaosi:Xiaoyu兄弟、今週何をしましたか?ブログの投稿を1週間更新していません
Xiaoyu:ええと、本当に時間が飛んでいます今週は、大きなイベントで忙しいです!
Xiao Diaosiは好奇心旺盛です:草を掘ってください~~ Yu兄弟、一歩話をしてください。?
Xiaoyu:これは...バーベキューで賄賂を受け取りたくない...
Xiao Diaosi:急いで、ゆう兄弟、2つの食事、食べて食べて大丈夫?
Xiaoyu:うーん...さて、少し明らかにしましょう、それは銀と関係があります...
Xiao Diaosi:もっと具体的に言うと??
Xiaoyu:ハハ、あなたのフレーズ「もっと具体的に」はインタビュアーを思い出させます、おそらく能力が制限されているためか、...インタビューの間、私はコード+注釈を紙に直接書きました今、ガチョウ、インタビュアーはもっと具体的に言います...
Xiao Diaosi:中断しないでください、3つのバーベキュー、これ以上はありません...
Xiaoyu:ええ、はい、今週の忙しいスケジュールについて少しお話ししましょう。コンテンツを共有するための特別なブログ投稿があります。それは非常に良いと言われています。すべてのスキルと実際のプロジェクト経験を持っている場合は、通常どおりプレイできます。非常に優れたインタビュアーに遭遇した場合、P7のオファーは不可分です。 Bar
Xiao Diaosi:「私は非常に素晴らしい面接担当者に会いました「?
Xiaoyu:コンセプトのせいで、あなたの能力やスキルがどれほど強い場合でも、会社は素晴らしいですが、インタビュアーに同意しないので、バイバイと言わなければなりません ~~
>>> 后期,小鱼也会针对遇到的各种面试官大佬,写一篇文章,很有趣的~ 一句成语**大千世界,无奇不有**来体现!
小さなディックリボンに迷子になるたびに、私は仕事に戻り
、最後の記事「Python3、ウェブサイトの構築とFlaskプロジェクトの構築、Webサービスを開始しましょう!》
今すぐタスクを開始します。フロントエンドページにデータを表示するAPIインターフェイスを記述します。
1.サードパーティのモジュールをインストールする
1.1フラスコ_レストプラスのインストール
コマンドウィンドウ、pipの直接インストール
pip install flask_restplus
1.2 werkzeugのインストール
コマンドウィンドウ、pipの直接インストール
pip install werkzeug == 0.16.0
ここで、古いバージョンをインストールする理由について説明します。新しいバージョン(1.0.1)はフラスコと互換性がないため、
次のレポートが表示されます。
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論文を作成する
このファイルは、主に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論文リストの内容を取得する
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ファイル
を直接実行すると、完璧なページが表示されます〜〜
3.まとめ
これまで、ページのスタイルと機能を除いて、ほとんど共有されてきました。
ページスタイルに関しては、私たちのjsはフロントエンドのボスと比較することはできませんが
、機能が問題なければ、修飾されていると思います!!
それでもウェブサイトの作成プロセスが不明な場合は、Xiaoyuが再リンクしてクリックして学習します。
1. 「Python3、ウェブサイト構築用のデータベーステーブルデザインとデータストレージ!》
2. " Python3、Flaskプロジェクトを構築するためのWebサイト構築、Webサービスを開始します!!》
3. 「Python3、ウェブサイト構築用のAPIインターフェースを記述し、フロントエンドページにデータを表示させます!》
Xiao Diaosi:共有してくれたYu兄弟、ありがとうございました。次に、それらの記事をいつ共有しますか??
Xiaoyu:うーん...心配しないでください、来るはずです、来るでしょう!!