GraphQL教程
一、GraphQL教程Python
根据官方文档,实现一个简单的GraphQL API,首先我们需要安装GraphQL,使用pip install graphql-python
进行安装。
from graphene import ObjectType, String, Schema
class Query(ObjectType):
hello = String(name=String(default_value="stranger"))
def resolve_hello(root, info, name):
return f'Hello {name}!'
schema = Schema(query=Query)
result = schema.execute('{ hello }')
print(result.data['hello']) # 'Hello stranger!'
在上面的例子中,schema
是整个API的入口,query
定义了一个名为hello
的查询(variables
参数为默认值),resolve_hello
指定了查询hello
的具体行为,并返回了结果字符串。Schema.execute()
输入一个查询字符串,返回查询结果。
在这个查询中,我们可以把{hello}
看作是一种表单提交语法,告诉服务器我们需要一个hello
值。
二、GraphQL教程 Grapher
Grapher是一个用于构建GraphQL API的库,具有可扩展的插件架构。Grapher中的插件由三部分组成:Graph、Query、Type。Graph是GraphQL API的定义,Query是定义的查询函数,Type是查询的返回值类型。 示例代码如下:
from grapher import Graph, Type, Query, astId, astStr
class User(Type):
name = str
email = str
class MyGraph(Graph):
users = Query(list=User, args={
'id': astId,
'email': astStr,
'name': astStr,
},
resolve=lambda root, args, context: list_users_by_args(args)
)
Grapher不需要手动拼接schema代码,Grapher会自动生成GraphQL API的完整schema。
三、GraphQL教程QGraphicsView
QGraphicsView是一个用于显示自定义2D图形界面的工具类,除了显示图像以外QGraphicsView还可以支持用户交互。在QGraphicsView中,场景是笛卡尔图形世界的一部分,其中可以放置任何元素,如图形、文本或其他项。每个项都有自己的位置、姿态、范围和渲染状态。 下面是示例代码:
from PyQt5.QtCore import QRectF, QPointF, Qt
from PyQt5.QtGui import QPainter, QColor, QPen
from PyQt5.QtWidgets import QApplication, QGraphicsView, QGraphicsScene, QGraphicsEllipseItem
class MyView(QGraphicsView):
def __init__(self, parent=None):
super(MyView, self).__init__(parent)
self.setSceneRect(-200, -200, 400, 400)
self.setRenderHint(QPainter.Antialiasing)
self.setScene(QGraphicsScene(self))
ellipseItem = QGraphicsEllipseItem(0, 0, 70, 70)
ellipseItem.setPen(QPen(Qt.white, 0))
ellipseItem.setBrush(QColor(244, 191, 66))
ellipseItem.setPos(QPointF(-35, -35))
self.scene().addItem(ellipseItem)
if __name__ == '__main__':
import sys
app = QApplication(sys.argv)
view = MyView()
view.show()
sys.exit(app.exec_())
该示例创建了一个圆形元素并添加到场景中。setSceneRect
方法设置了场景的数值范围,setRenderHint
方法设置了渲染选项,例如反锯齿。然后在场景中创建一个圆形项并添加到场景中。
四、GraphQL教程Grapher使用教程
使用Grapher创建GraphQL API的过程如下:
- 定义要扩展的GraphQL插件
- 使用插件创建Grapher对象
- 使用Grapher对象创建一个可供查询的schema
- 访问这个GraphQL API的剩余部分
示例代码如下:
from grapher import Schema
from grapher.config import Config
from grapher.graph import Graph
from grapher.graphql import graphql
from grapher.plugins import field, ObjectType, Query, String
class Hello(ObjectType):
hello = field(String, args=dict(name=String(description='姓名')), description='打招呼')
def resolve_hello(self, args, context, info):
return 'Hello ' + (args['name'] or 'World') + '!'
class ExampleGraph(Graph):
query = Query(Hello)
Grapher = Schema(ExampleGraph)
result = graphql(Grapher, '{ hello(name: "Grapher") }')
print(result['data'].get('hello'))
五、GraphQL教程Grapher软件使用教程
Grapher是一款用于可视化构建GraphQL API的工具,操作简单,易上手。
- 下载并安装Grapher for Mac、Windows或Linux。
- 运行Grapher并创建一个新项目。
- 在项目页面中创建模式或设计模式。
- 使用Grapher工具创建模式或设计模式的数据。
- 在Query栏中测试GraphQL API。
Grapher使用教程视频: https://www.youtube.com/watch?v=MNir2Y6Rf4g 以上是GraphQL教程的详细阐述,希望对你有所帮助。