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应该考虑使用DTO来代替Spring控制器层吗?   java为什么要将Maven与Git结合起来?   java试图将CSV转换为XLSX,但使用了错误的逗号拆分列   mysql Spring 3+Hibernate:java。sql。BatchUpdateException:无法添加或更新子行(ManyToMany)   java基本字符串反转器   java无法使用RestControllerAdvice为身份验证失败生成自定义错误消息   java当只允许SQLException时,如何抛出EOFEException?   java如何创建播放模块?   Android中匿名类的java实例化异常问题   java两个停靠组件,其中第二个组件填充剩余空间   java如何在按钮延迟时启用它   Java中正在运行的应用程序中的后台进程   java我正试图从一个字符串打印出这个字符输出   如何使用java socket通过两个不同的wifi连接两台电脑?   javaapachecamel:如何将分层数据从数据库转换为pojo   java Webrtc:OniconConnectionChange和onConnectionChange之间有什么区别   java如何重写已经创建的JTable方法   爪哇扫雷机堆垛机   雅加达ee Java ee EJB 3.0 Glassfish