Giter Site home page Giter Site logo

shangsky / flask-sugar Goto Github PK

View Code? Open in Web Editor NEW
165.0 165.0 12.0 1.76 MB

Flask Sugar is a web framework for building APIs with Flask, Pydantic and Python 3.6+ type hints. check parameters and generate API documents automatically. Flask Sugar是一个基于flask,pydantic,类型注解的API框架, 可以检查参数并自动生成API文档

Home Page: flask-sugar.vercel.app

License: MIT License

Python 100.00%
flask openapi python swagger

flask-sugar's People

Contributors

shangsky avatar shijl0925 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

flask-sugar's Issues

can you support operation mode config for the routes?

I found all routes have operation in the swagger and redoc api docs.
can you support operation mode config for the routes.

  1. 'default': includes all routes in this instance.

  2. 'strict': only includes routes which I wanted.

Using BaseModel in the GET parameters, is it possible?

I want GET query parameters have some validation. can you support it?

example code:

`
import datetime
from typing import List

from pydantic import Field, BaseModel
from flask_sugar import Query

class SettingQuery(BaseModel):
page: Optional[int] = Field(..., ge=1, description='page number')
limit: Optional[int] = Field(..., ge=1, le=25, description='limit number')
query: str = None

@apis_bp.get("/settings")
def settings(query: SettingQuery = Query(...)):
return {"query": query.dict()}
`

[Bug Report]When I use extension flask-debugtoolbar , error happended.

AssertionError: View function mapping is overwriting an existing endpoint function: debugtoolbar.sql_select

Traceback (most recent call last)
File "/Users/shijl0925/Pycharm/flask-example/backend/app/main.py", line 170, in
app = create_app()
File "/Users/shijl0925/Pycharm/flask-example/backend/app/main.py", line 144, in create_app
register_extensions(app_)
File "/Users/shijl0925/Pycharm/flask-example/backend/app/main.py", line 88, in register_extensions
extension.init_app(app)
File "/Users/shijl0925/Pycharm/flask-example/backend/venv/lib/python3.7/site-packages/flask_debugtoolbar/init.py", line 84, in init_app
app.register_blueprint(module, url_prefix='/_debug_toolbar/views')
File "/Users/shijl0925/Pycharm/flask-example/backend/venv/lib/python3.7/site-packages/flask/scaffold.py", line 57, in wrapper_func
return f(self, *args, **kwargs)
File "/Users/shijl0925/Pycharm/flask-example/backend/venv/lib/python3.7/site-packages/flask/app.py", line 1028, in register_blueprint
blueprint.register(self, options)
File "/Users/shijl0925/Pycharm/flask-example/backend/venv/lib/python3.7/site-packages/flask/blueprints.py", line 370, in register
deferred(state)
File "/Users/shijl0925/Pycharm/flask-example/backend/venv/lib/python3.7/site-packages/flask/blueprints.py", line 426, in
**options,
File "/Users/shijl0925/Pycharm/flask-example/backend/venv/lib/python3.7/site-packages/flask/blueprints.py", line 108, in add_url_rule
**options,
File "/Users/shijl0925/Pycharm/flask-example/backend/venv/lib/python3.7/site-packages/flask_sugar/app.py", line 143, in add_url_rule
super().add_url_rule(rule, endpoint, view, provide_automatic_options, **options)
File "/Users/shijl0925/Pycharm/flask-example/backend/venv/lib/python3.7/site-packages/flask/scaffold.py", line 57, in wrapper_func
return f(self, *args, **kwargs)
File "/Users/shijl0925/Pycharm/flask-example/backend/venv/lib/python3.7/site-packages/flask/app.py", line 1091, in add_url_rule
"View function mapping is overwriting an existing"
AssertionError: View function mapping is overwriting an existing endpoint function: debugtoolbar.sql_select

[Bug Report]When I use extension flask-admin , error happended.

flask 2.0.2
flask-admin 1.6.0
flask-sugar 0.0.14

127.0.0.1 - - [08/Feb/2022 10:46:51] "GET /apis/openapi.json HTTP/1.1" 500 -
Traceback (most recent call last):
File "/Users/shijl0925/Pycharm/flask-example/backend/venv/lib/python3.7/site-packages/flask/app.py", line 2091, in call
return self.wsgi_app(environ, start_response)
File "/Users/shijl0925/Pycharm/flask-example/backend/venv/lib/python3.7/site-packages/flask/app.py", line 2076, in wsgi_app
response = self.handle_exception(e)
File "/Users/shijl0925/Pycharm/flask-example/backend/venv/lib/python3.7/site-packages/flask/app.py", line 2073, in wsgi_app
response = self.full_dispatch_request()
File "/Users/shijl0925/Pycharm/flask-example/backend/venv/lib/python3.7/site-packages/flask/app.py", line 1518, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/Users/shijl0925/Pycharm/flask-example/backend/venv/lib/python3.7/site-packages/flask/app.py", line 1516, in full_dispatch_request
rv = self.dispatch_request()
File "/Users/shijl0925/Pycharm/flask-example/backend/venv/lib/python3.7/site-packages/flask/app.py", line 1502, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**req.view_args)
File "/Users/shijl0925/Pycharm/flask-example/backend/venv/lib/python3.7/site-packages/flask_sugar/view.py", line 312, in call
response = self.view_func(**cleaned_data)
File "/Users/shijl0925/Pycharm/flask-example/backend/venv/lib/python3.7/site-packages/flask_sugar/openapi.py", line 77, in openapi_json_view
paths, components = collect_paths_components()
File "/Users/shijl0925/Pycharm/flask-example/backend/venv/lib/python3.7/site-packages/flask_sugar/openapi.py", line 198, in collect_paths_components
flat_models, model_name_map=model_name_map, ref_prefix=REF_PREFIX
File "/Users/shijl0925/Pycharm/flask-example/backend/venv/lib/python3.7/site-packages/flask_sugar/openapi.py", line 185, in schema
model_name = model_name_map[model]
KeyError: <class 'pydantic.main.flask_admin__model__base__export__ParamModel'>

怎么获取flask的app

app = Sugar(name),默认的app是sugar的app,请问怎么获取flask的app,这样flask中的很多第三方库啥的还能继续使用,谢谢

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.