应用mongodb引擎提高性能

djmongoengine的Python项目详细描述


Django MongoEngine公司

Django-MongoEngine或{a2}不同,此包的目标不是更改Django中的SQL角色。为NoSQL数据库编写后端并非易事。这里使用MongoDB作为helper数据库,以提高性能。在

安装

要通过pip安装包,请运行以下命令

# From Github
$ pip install git+https://github.com/giorgi94/djmongoengine.git

使用

要开始使用该包,请将djmongoengine添加到INSTALLED_APPS并定义{}

^{pr2}$

包为文档架构和连接器提供mixin

# models.pyclassDocumentMixin:@classmethoddefUpdateOne(cls,instance):# updates document in MongoDB, which corresponeds to django instance@classmethoddeffrom_instance(cls,instance):# create mongoengine document based on django instance

我们假设djangoinstance.id存储在ID中,因为id从mongodb返回{}。在example中,我们提供了基于django模型定义mongoengine模式的基本示例

# myapp/models.pyclassCategory(models.Model):title=models.CharField(max_length=50,unique=True)alias=models.CharField(max_length=50)# myapp/mongo.pyclassCategory(EmbeddedDocument):ID=fields.IntField()title=fields.StringField()alias=fields.StringField()@classmethoddeffrom_instance(cls,instance):returncls(ID=instance.id,title=instance.title,alias=instance.alias)

signals.pyreceivers.py中定义了函数和信号,用于将django中的更改同步到mongodb。在

图形ql

GraphQL与包没有直接连接,但是graphene的文档对初学者不友好。有graphene-django和{a4},但它不允许充分挖掘graphql和{}的全部潜力,所以我们使用graphene-mongo来获得更多的多样性。查询在中定义

# myapp/query.pyclassQuery(graphene.ObjectType):articles=graphene.List(ArticleQuery,find=FindInput())defresolve_articles(self,info,**kwargs):find=kwargs.get("find")normilize_find(find)iffindisnotNone:returnArticle.objects(**find)returnArticle.objects()schema=graphene.Schema(query=Query)# myapp/views.pyfrom.queryimportschemadefgraphql_view(request):...result=schema.execute(query)ifresult.errors:returnJsonResponse({"errors":str(result.errors)})returnJsonResponse({"query":result.data})

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java不兼容类型:MainActivity无法转换为LifecycleOwner   java安卓是一种更有效的读取大文本文件的方法   java导出LWJGL本地人与项目?(IntelliJ IDEA)   JDK更新后,JavaJShell不再在下一行打印输出   父类对象上的继承Java比较子属性   Java:有没有一个容器可以有效地结合HashMap和ArrayList?   安卓 Java对象指针   java在annotationdriven Spring MVC应用程序中实现大气   java 安卓源代码构建应用找不到安卓supportv4。罐子   文件系统上的抽象层和Java中的jar/zip   java在水平滚动视图中添加多个图像?   java如何从firebase实时数据库中获取字符串数组   WIndows 10工作站上的java未满足链接错误   java命令在终端中工作,但在使用过程中出现“无结束引号”错误。执行官