flask graphql
v2.0.1
將GraphQL支持添加到燒瓶應用程序中。
只需使用flask_graphql的GraphQLView視圖
from flask import Flask
from flask_graphql import GraphQLView
from schema import schema
app = Flask ( __name__ )
app . add_url_rule ( '/graphql' , view_func = GraphQLView . as_view (
'graphql' ,
schema = schema ,
graphiql = True ,
))
# Optional, for adding batch query support (used in Apollo-Client)
app . add_url_rule ( '/graphql/batch' , view_func = GraphQLView . as_view (
'graphql' ,
schema = schema ,
batch = True
))
if __name__ == '__main__' :
app . run ()這將在您的應用中添加/graphql端點並啟用GraphIQL IDE。
如果您使用的是石墨烯庫的Schema類型,請確保使用graphql_schema屬性在GraphQLView視圖上作為架構傳遞。否則, graphql-core的GraphQLSchema是必需的方式。
有關Graphene V3發行說明和GraphQL核3使用的更多信息。
schema :您希望視圖在獲得有效請求時執行的GraphQLSchema對象。context :將作為context_value傳遞到GraphQl execute函數的值。默認情況下,按密鑰request將請求對象設置為dict 。root_value :您要提供給execute的root_value 。pretty :無論您是否希望響應是精美的JSON。graphiql :如果為True ,則可能會直接從瀏覽器加載(用於調試和探索的有用工具)時呈現GraphIQL。graphiql_version :要加載的GraphiQL版本。默認為“ 1.0.3” 。graphiql_template :注入Jinja模板字符串以自定義GraphIQL。graphiql_html_title :要顯示的graphiql標題。默認為“ graphiql” 。batch :將GraphQl視圖設置為批次(用於在Apollo-Client或ReaCtrelayNetworklayer中使用)middleware :GraphQL中間列表。encode :用於響應的編碼器(明智地默認為graphql_server.json_encode )。format_error :用於響應的錯誤格式器(明智地默認為graphql_server.default_format_error 。subscriptions :用於使用GraphQl-WS中訂閱的GraphIQL套接字端點。headers :可選的GraphQl字符串用作初始顯示的請求標頭(如果未提供),將使用存儲的標頭。default_query :未提供查詢時使用的可選GraphQl字符串,並且上一個會話中沒有存儲的查詢。如果未提供,GraphIQL將使用其自己的默認查詢。header_editor_enabled :可選的布爾值,可在TRUE時啟用標題編輯器。默認為false 。should_persist_headers :一個可選的布爾值,它可以在TRUE時堅持存儲。默認為false 。您還可以每個請求每個請求中具有動態的根值,也可以亞類GraphQLView和overwrite get_root_value(self, request) 。
class UserRootValue ( GraphQLView ):
def get_root_value ( self , request ):
return request . user 自V3以來, flask-graphql代碼居住在GraphQL-Server存儲庫中,以保持基本包裝與所有其他集成同步的任何破壞更改。為了貢獻,請查看貢獻。 md。