ウェブサイト構築用のAPIインターフェースであるPython3は、フロントエンドページにデータを表示させます!

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:うーん...心配しないでください、来るはずです、来るでしょう!

おすすめ

転載: blog.csdn.net/wuyoudeyuer/article/details/108484390