ravendb嵌入式库以嵌入式方式运行ravendb

pyravendb-embedded的Python项目详细描述


概述

pyravendb embedded是一个ravendb包,用于在嵌入式模式下运行ravendb。

EmbeddedServer().start_server()withEmbeddedServer().get_document_store("Embedded")asstore:withstore.open_session()assession:session.store(User(name="Ilay",age=4))session.save_changes()

安装

PyPi安装,作为pyravendb-embedded_

pip install pyravendb

从pip中嵌入的install pyravendb也将为您提供ravendb服务器二进制文件的副本

用法

启动服务器

要启动ravendb服务器,只需要从EmbeddedServer实例运行start_server()方法,就这样。

EmbeddedServer.start_server()

为了更好地控制您的服务器启动服务器方法可以使用一个参数服务器选项

服务器选项

  • framework_version-运行服务器的框架版本。
  • data_目录-保存数据库数据的位置(如果没有,则文件将保存在基本文件夹中的ravendb文件夹中)。
  • server_url-如果本地主机上没有服务器将打开的URL,则将打开服务器。
  • dotnet_path-如果路径中的dotnet不需要这里的任何东西(如果您的计算机中没有安装.net core),则dotnet.exe所在的位置
    您可以下载dotnet binaries并输入路径即可)
  • 命令行参数-所有server command args的列表。
server_options=ServerOptions(data_directory="MYPATH/RavenDBDataDir")EmbeddedServer().start_server(server_options)

安全性

有两个选项可以使ravendb在pyravendb embedded中安全:

  1. secured(certificate_path, certificate_password=None)-对于此选项,您将为服务器放置一个.pfx文件的路径,如果有,则为该文件设置一个密码。

    server_options=ServerOptions()server_options.secured("PATH_TO_PFX_CERT_FILE","PASSWORD_TO_CERT_FILE")EmbeddedServer.start_server(server_options)
  2. secured_with_exec(self, cert_exec, cert_exec_args, server_cert_fingerprint, client_cert_path, client_cert_password=None)-对于此选项,您必须放置可执行程序(例如powershell、python等)和他的参数、可以使用pyravendb实用程序的证书文件指纹(请参阅get_cert_file_fingerprint方法)、客户端证书路径和密码(如果有)。

    server_options=ServerOptions()sserver_options.secured_with_exec("powershell","C:\\secrets\\give_me_cert.ps1",Utils.get_cert_file_fingerprint("PATH_TO_PEM_CERT_FILE"),"PATH_TO_PEM_CERT_FILE")EmbeddedServer.start_server(server_options)

获取文档存储

在初始化并启动服务器之后,我们可以使用get_document_store方法来获取文档存储 像平常一样和Ravendb一起工作。

EmbeddedServer().start_server()withEmbeddedServer().get_document_store("Test")asstore:pass

get_document_store方法可以获取或仅获取数据库名或数据库选项

数据库选项

  • 数据库名称-数据库的名称
  • STR 1 } $SkIPK-CRATIGIN数据库< <强> -^ {TT5}$将创建一个新的数据库,如果数据库不存在,如果这个选项为真,我们将不创建数据库(默认为false)。
# In this example we won't create the Test database if not exists will raise an exceptiondatabase_options=DatabaseOptions(database_name="Test",skip_creating_database=True)withEmbeddedServer().get_document_store(database_options)asstore:# Your code here

在浏览器中打开ravendb studio

要从pyravendb embedded打开ravendb studio,可以使用open_studio_in_browser方法,studio将自动打开 一个默认浏览器。

EmbeddedServer().open_studio_in_browser()

致谢

embeddedserver类是单例的!

每次我们使用EmbeddedServer()时,都会得到相同的实例。

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

推荐PyPI第三方库


热门话题
java使用jackson序列化/反序列化具有不同属性的子属性   javascript驱动程序。getTitle()从错误页面获取数据   java web应用程序的增量部署   java字符引用“&#x10”是无效的XML字符   java MyEclipse+Hibernate不按ID排序属性集?   找不到IBM Filenet P8更改预处理器Java实现   java比较器,用于按浮点参数对对象arraylist排序   java如何调试。来自eclipse或其他版本的bsh文件   不允许使用java rest api post方法   java如何在Servlet中打开弹出窗口,然后重定向页面   java的replaceAll方法对我不起作用我做错了什么?   我收到了javax。网ssl。SSLHandshakeException:握手期间远程主机关闭连接