def main(): app = create_app('./strichliste.conf') api = Api(app) api.add_resource(strichliste.views.Settings, '/settings') api.add_resource(strichliste.views.Metrics, '/metrics') api.add_resource(strichliste.views.UserList, '/user') api.add_resource(strichliste.views.User, '/user/<int:user_id>') api.add_resource(strichliste.views.UserTransactionList, '/user/<int:user_id>/transaction') api.add_resource(strichliste.views.UserTransaction, '/user/<int:user_id>/transaction/<int:transaction_id>') api.add_resource(strichliste.views.Transaction, '/transaction') api.representation('application/json')(output_json) db.create_all(app=app) app.run(port=8080, debug=True)
import os BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) sys.path.insert(0, os.path.join(BASE_DIR, 'commons')) from flask import Flask from flask_restful import Api from settings import myconfig from utils import ov_resp def create_app(config, env_config_file=False): # create and configure the qiyi_app qiyi_app = Flask(__name__) qiyi_app.config.from_object(config) if env_config_file: qiyi_app.config.from_envvar('str', silent=True) from commons.models import db db.init_app(qiyi_app) return qiyi_app app = create_app(myconfig.DevelopmentConfig) api = Api(app) # REPRESENTATIONS = [('application/json', ov_resp.output_json), ('text/html', ov_resp.output_html)] # api.representations = OrderedDict(REPRESENTATIONS) api.representation('text/html')(ov_resp.output_html) # api.representation('application/json')(ov_resp.output_json)
# 蓝图初始化文件 from flask import Blueprint from flask_restful import Api # 1.创建蓝图对象管理用户模块 user_bp = Blueprint("user", __name__, url_prefix='/app') # 2.将蓝图对象包装成具备有restful风格的api对象 user_api = Api(user_bp) # 3.定义类视图[passport.py] # 4.自定义返回的json格式 from utils.output import output_json # 装饰器representation拦截底层返回的字典,自定义json格式 user_api.representation(mediatype="application/json")(output_json) # 5.给类视图添加路由信息 # /app/sms/codes # http://127.0.0.1:8000/app/sms/codes/18512341234 from app.resources.user.passport import SMSCodeResource, LoginRegisterResource user_api.add_resource(SMSCodeResource, '/sms/codes/<mob:mobile>') # /app/authorizations user_api.add_resource(LoginRegisterResource, '/authorizations') # 6在app中注册蓝图对象[app.__init__文件]
from flask import Blueprint from flask_restful import Api from utils.output import output_json # 创建蓝图对象 search_bp = Blueprint('search', __name__) # 创建Api对象 search_api = Api(search_bp) # 指定自定义的json返回格式 search_api.representation('application/json')(output_json)
from flask import Blueprint from flask_restful import Api from app.resources.article.channel import AllChannelResource from utils.constats import BASE_URL_PRIFIX # 1.创建蓝图对象 article_bp = Blueprint('article', __name__, url_prefix=BASE_URL_PRIFIX) # 2.根据蓝图对象创建组建对象 article_api = Api(article_bp) # 2.创建API对象 from utils.output import output_json article_api.representation('application/json')(output_json) article_api.add_resource(AllChannelResource, '/channels')
# @goods_api.representation('application/json') def handle_json(data, code, headers): # 自定义返回json格式 if 'message' not in data: data = {'message': 'OK', 'data': data} # 原output_json(data, code, headers=None)函数内容 """Makes a Flask response with a JSON encoded body""" settings = current_app.config.get('RESTFUL_JSON', {}) # If we're in debug mode, and the indent is not set, we set it to a # reasonable value here. Note that this won't override any existing value # that was set. We also set the "sort_keys" value. if current_app.debug: settings.setdefault('indent', 4) settings.setdefault('sort_keys', not PY3) # always end the json dumps with a new line # see https://github.com/mitsuhiko/flask/pull/1262 dumped = dumps(data, **settings) + "\n" resp = make_response(dumped, code) resp.headers.extend(headers or {}) return resp goods_api.representation('application/json')(handle_json)
from flask import Blueprint from flask_restful import Api from utils.output import output_json from . import channel, article information_bp = Blueprint('information', __name__) information_api = Api(information_bp, catch_all_404s=True) information_api.representation('application/json')(output_json) # 频道列表 information_api.add_resource(channel.ChannelListResource, '/v1_0/channels', endpoint='ChannelList') # 频道 information_api.add_resource(channel.ChannelResource, '/v1_0/channels/<int(min=1):target>', endpoint='Channel') # 文章列表 information_api.add_resource(article.ArticleListResource, '/v1_0/articles', endpoint='ArticleList') # 文章 information_api.add_resource(article.ArticleResource, '/v1_0/articles/<int(min=1):target>', endpoint='Article')
'post': [decorator2], } def get(self): return {'hello': 'index page'} def post(self): return {'message': 'index page post'} api.add_resource(IndexResources, '/', endpoint='index') user_api.add_resource( UserResources, '/user', ) user_api.representation('application/json')(output_json) app.register_blueprint(user_bp) if __name__ == '__main__': print(app.url_map) # app.run(debug=True,host='0.0.0.0') app.run(debug=True) @app.route('/error') def index(): abort(400) return '我去你' @app.errorhandler(400)
from flask import Blueprint from flask_restful import Api from apps.resources.comments.releasecomment import CommentResource from utils.contains import BASE_URL_PREFIX comment_bp = Blueprint('comment', __name__, url_prefix=BASE_URL_PREFIX) comment_api = Api(comment_bp) #添加外层包装 from utils.output_json import output_json comment_api.representation('application/json')(output_json) comment_api.add_resource(CommentResource, '/comments')
from flask import Flask, request, make_response from flask.ext.pymongo import PyMongo from bson.json_util import dumps from flask_restful import Api app = Flask(__name__) # config mongodb app.config['MONGO_HOST'] = 'localhost' app.config['MONGO_PORT'] = 27017 app.config['MONGO_DBNAME'] = 'sysbca' mongo = PyMongo(app) # output format def output_json(obj, code, headers=None): resp = make_response(dumps(obj), code) resp.headers.extend(headers or {}) return resp DEFAULT_REPRESENTATIONS = {'application/json':output_json} api = Api(app) api.representation = DEFAULT_REPRESENTATIONS # blueprint route import application.index import application.bca.controllers import application.bni.controllers
from flask import Blueprint from flask_restful import Api from Common.utils.output import output_json from Controller.resources.data.dataobject import * data_bp = Blueprint('dataobject', __name__) data_api = Api(data_bp, catch_all_404s=True) data_api.representation('application/json')(output_json) #data_api.add_resource(DataListResource, '/datalist',endpoint='datalist') data_api.add_resource(DataResource, '/data', endpoint='data')
from flask import Blueprint from flask_restful import Api from . import announcement, imtest from utils.output import output_json notice_bp = Blueprint('notice', __name__) notice_api = Api(notice_bp, catch_all_404s=True) notice_api.representation('application/json')(output_json) notice_api.add_resource(announcement.AnnouncementListResource, '/v1_0/announcements', endpoint='Announcements') notice_api.add_resource(announcement.AnnouncementResource, '/v1_0/announcements/<int(min=1):target>', endpoint='Announcement') notice_api.add_resource(imtest.IMTestResource, '/imtest/<string:event>', endpoint='IMTest')
from user.api.dependencies import bp_dependencies, TodoNext from user.auth.auth import Register, bp from user.api.demo import Todo1 from user.error import Error from user.utils.json import output_json api = Api(bp) # 将api与blueprint结合 api_dependencies = Api(bp_dependencies) api_error = Api(error) api.add_resource(Todo1, '/todo1', endpoint='todo666') # 添加资源路由 api.add_resource(Todo1, '/todo/<todo_id>', endpoint='todwwwwo') api.add_resource(Register, '/register', endpoint='register') api_error.add_resource(Error, '/error404', endpoint='error404') def dependencies(): """依赖方法/类""" return 'i am dependencies' api_dependencies.add_resource( TodoNext, '/todo-next', endpoint='todo-next', resource_class_kwargs={'dependencies': dependencies}) # 依赖注入实例 api.representation(mediatype='application/json')(output_json) # 自定义返回格式 api_dependencies.representation(mediatype='application/json')( output_json) # 自定义返回格式 api_error.representation(mediatype='application/json')(output_json) # 自定义返回格式
from flask import Blueprint from flask_restful import Api from utils.output import output_json from . import basic, search, sales, read_source statistics_bp = Blueprint('statistics', __name__) statistics_api = Api(statistics_bp, catch_all_404s=True) statistics_api.representation('application/json')(output_json) # 基本统计 statistics_api.add_resource(basic.StatisticsBasicResource, '/v1_0/statistics_basic', endpoint='StatisticsBasic') # 关键字搜索统计--分页 statistics_api.add_resource(search.StatisticsSearchResource, '/v1_0/statistics_search', endpoint='StatisticsSearch') # 关键字搜索统计--总数 statistics_api.add_resource(search.StatisticsSearchTotalResource, '/v1_0/statistics_search_total', endpoint='StatisticsSearchTotal') # 销售额统计--总数 statistics_api.add_resource(sales.StatisticsSalesTotalResource, '/v1_0/statistics_sales_total', endpoint='StatisticsSalesTotal') # 阅读来源统计-总数
from flask import Blueprint from flask_restful import Api from utils.contents import BASE_URL_PRIFIX from utils.output import output_json from .channels import AllChannels from .article import ArticleListResource # 创建蓝图对象 channel_bp = Blueprint('channel', __name__, url_prefix=BASE_URL_PRIFIX) # 创建Api对象 channel_api = Api(channel_bp) channel_api.representation('application/json')(output_json) # 配置路由 channel_api.add_resource(AllChannels, '/channels') channel_api.add_resource(ArticleListResource, '/articles')
from flask import Blueprint from flask_restful import Api from utils.output import output_json from . import passport, administrator, group, permission, operationlog system_bp = Blueprint('system', __name__) system_api = Api(system_bp, catch_all_404s=True) system_api.representation('application/json')(output_json) # 极验--验证码 system_api.add_resource(passport.CaptchaResource, '/v1_0/captchas/<string:account>', endpoint='Captcha') # 登录认证 system_api.add_resource(passport.AuthorizationResource, '/v1_0/authorizations', endpoint='Authorization') # 密码 system_api.add_resource(passport.PasswordResource, '/v1_0/password', endpoint='Password') # 管理员(增加,查询,批量删除) system_api.add_resource(administrator.AdministratorListResource, '/v1_0/administrators', endpoint='AdministratorList') # 单个管理员(详情,修改,删除) system_api.add_resource(administrator.AdministratorResource, '/v1_0/administrators/<int(min=1):target>', endpoint='Administrator')
from flask import Blueprint from flask_restful import Api # from . import article, collection, liking, dislike, report, comment, channel, reading from toutiao.resources.news import article from utils.output import output_json news_bp = Blueprint('news', __name__) news_api = Api(news_bp, catch_all_404s=True) news_api.representation('application/json')(output_json) # # news_api.add_resource(article.ArticleResource, '/v1_0/articles/<int(min=1):.>', # endpoint='Article') # news_api.add_resource(article.ArticleListResource, '/v1_0/articles', endpoint='Articles') # # news_api.add_resource(article.ArticleListResourceV1D1, '/v1_1/articles', # endpoint='ArticlesV1_1') # # news_api.add_resource(article.UserArticleListResource, '/v1_0/users/<int(min=1):user_id>/articles', # endpoint='UserArticles') # # news_api.add_resource(article.CurrentUserArticleListResource, '/v1_0/user/articles', # endpoint='CurrentUserArticles') # # news_api.add_resource(collection.CollectionListResource, '/v1_0/article/collections', # endpoint='ArticleCollections') #
from flask import Blueprint from flask_restful import Api from . import images from utils.output import output_json upload_bp = Blueprint('upload', __name__) upload_api = Api(upload_bp, catch_all_404s=True) upload_api.representation('application/json')(output_json) upload_api.add_resource(images.UploadImageResource, '/upload/images', endpoint='UploadImageResource')
from flask import Blueprint from flask_restful import Api from . import user from utils.output import output_json admin_bp = Blueprint('admin', __name__) admin_api = Api(admin_bp, catch_all_404s=True) admin_api.representation('application/json')(output_json) admin_api.add_resource(user.AdminUserListResource, '/admin/user/list', endpoint='AdminUserListResource') admin_api.add_resource(user.AdminUserInfoResource, '/admin/user/info/<int(min=1):user_id>', endpoint='AdminUserInfoResource') admin_api.add_resource(user.AdminUserUpdateResource, '/admin/user/update', endpoint='AdminUserUpdateResource') admin_api.add_resource(user.AdminMenuInfoResource, '/admin/menu/list', endpoint='AdminMenuInfoResource') admin_api.add_resource(user.AdminRolesResource, '/admin/role/list', endpoint='AdminRolesResource') admin_api.add_resource(user.AdminGetRoleInfoResource, '/admin/user/role/<int(min=1):user_id>',
from flask import Blueprint from flask_restful import Api from Common.utils.output import output_json from Controller.resources.metaobject.metaobject import * metaobject_bp = Blueprint('metaobject', __name__) metaobject_api = Api(metaobject_bp, catch_all_404s=True) metaobject_api.representation('application/json')(output_json) metaobject_api.add_resource(MetaObjectListResource, '/metaobjectlist', endpoint='metaobjectlist') metaobject_api.add_resource(MetaObjectResource, '/metaobject', endpoint='metaobject') metaobject_api.add_resource(MetaFieldResource, '/metafield', endpoint='metafield')