フッターコンテンツにスキップ
PYTHONヘルプ

Py2neo(開発者向けのしくみ)

グラフデータベースの情報は、エンティティとその関係をモデリングするために、関連するノードとエッジとして格納され、操作されます。 グラフデータベースは、伝統的なテーブルベースのリレーショナルデータベースと比較して、データそのものよりも関係性が同等またはそれ以上に重要である状況下で説得力を発揮します。

この構造は、複雑なネットワーククエリと解析を効率的にサポートするため、詐欺検出、推奨システム、ソーシャルネットワークアプリケーションで見事に機能します。 このようなデータベースは、グラフアルゴリズムを使用して、通常のデータモデルでは非常に発見が困難なパターンと関係を簡単に発見します; したがって、データ内に存在する複雑な関係について多くの洞察的な情報が得られます。

この記事では、Py2neoを使用してIronPDFと組み合わせる方法を学び、発見をPDFに簡単に表示できるようにします。

Py2neoとは

Py2neoは、非常に人気のあるグラフデータベースであるNeo4jをアプリケーションで使用できるように開発されたPython用のクライアントライブラリおよびツールキットです。 Neo4jのグラフトポロジーにアクセスするための直感的なユーザーインターフェースを提供し、関係性のあるノードの追加、編集、削除、作成を容易に行います。 Py2neoは、PythonプログラムとNeo4jデータベースの間のシームレスなインターフェースを提供し、Cypherクエリの実行以外に、グラフデータの直接操作を可能にします。

この包括的なPy2neoの機能セットは、Neo4jをPythonプロジェクトと統合するのを容易にし、グラフデータの高度なクエリと効率的な管理を実現し、Pythonアプリケーションのためにグラフデータベースの強力な機能を活用するため、ほとんど作業せずに済みます。

Py2neo(開発者向けの動作方法): 図1 - Py2neoパッケージウェブページ

クライアントアプリケーションで使用されているほとんどのオペレーティングシステム下で使用されている多くのPythonディストリビューションをサポートします。 ただし、Py2neoは主にLinuxオペレーティングシステムで使用されます; 他のオペレーティングシステムでも動作するかもしれませんが、直接サポートされていません。

このライブラリには、すべてのコマンドラインツールや管理ツールを含む広範な機能が含まれています。 このライブラリは、Neo4jデータベースを扱うための非常に堅牢な方法の1つです。 Py2neoはスムーズな統合と信頼性のあるパフォーマンスのための互換性保証を提供します。 ライブラリはBoltとHTTP両方のプロトコルをサポートしています。

Py2neoを使用したPythonとの設定

次の手順は、Py2neoを構築し、Neo4jデータベースと通信する設定を助けます:

Py2neoライブラリをインストールする

まず、Py2neoクライアントライブラリをpipを介してインストールし、最新のリリースをインストールし、バグ修正を採用します:

pip install py2neo
pip install py2neo
SHELL

Neo4jがシステム上で作動していることを確認してください。 Neo4j ウェブサイトからダウンロードし、その後オペレーティングシステムのインストール手順に従ってください。

Py2neoでNeo4jに接続する

Py2neoを使用して、Neo4jインスタンスとPythonスクリプトまたはインタラクティブ環境の間で接続を確立できます。 以下の簡単な例を見てください:

from py2neo import Graph

# Replace with your Neo4j credentials and connection details
uri = "bolt://localhost:7687"  # URI for Neo4j Bolt protocol
user = "neo4j"                 # Username
password = "password"          # Password

# Create a connection to the Neo4j database
graph = Graph(uri, auth=(user, password))

# Verify the connection by running a simple query
result = graph.run("RETURN 'Hello, Neo4j!' AS message")
print(result)  # Should print: Hello, Neo4j!
from py2neo import Graph

# Replace with your Neo4j credentials and connection details
uri = "bolt://localhost:7687"  # URI for Neo4j Bolt protocol
user = "neo4j"                 # Username
password = "password"          # Password

# Create a connection to the Neo4j database
graph = Graph(uri, auth=(user, password))

# Verify the connection by running a simple query
result = graph.run("RETURN 'Hello, Neo4j!' AS message")
print(result)  # Should print: Hello, Neo4j!
PYTHON

コンソール出力

Py2neo(開発者向けの動作方法): 図2 - 前の例に対するコンソール出力

Py2neoの設定

加えて、接続設定またはデフォルトのデータベースなど、自分のニーズに合わせてPy2neoのパラメータを変更できます。 ここに、さらに多くの設定の例が提供されています:

from py2neo import Graph, Node, Relationship

# Replace with your Neo4j credentials and connection details
uri = "bolt://localhost:7687"  # URI for Neo4j Bolt protocol
user = "neo4j"                 # Username
password = "password"          # Password

# Create a connection to the Neo4j database
graph = Graph(uri, auth=(user, password))

# Example of creating nodes and relationships
# Create nodes for Alice and Bob
alice = Node("Person", name="Alice")
bob = Node("Person", name="Bob")

# Add nodes to the graph
graph.create(alice)
graph.create(bob)

# Create a relationship between Alice and Bob
relationship = Relationship(alice, "KNOWS", bob)
graph.create(relationship)
from py2neo import Graph, Node, Relationship

# Replace with your Neo4j credentials and connection details
uri = "bolt://localhost:7687"  # URI for Neo4j Bolt protocol
user = "neo4j"                 # Username
password = "password"          # Password

# Create a connection to the Neo4j database
graph = Graph(uri, auth=(user, password))

# Example of creating nodes and relationships
# Create nodes for Alice and Bob
alice = Node("Person", name="Alice")
bob = Node("Person", name="Bob")

# Add nodes to the graph
graph.create(alice)
graph.create(bob)

# Create a relationship between Alice and Bob
relationship = Relationship(alice, "KNOWS", bob)
graph.create(relationship)
PYTHON

以下は、追加されたツールディスプレイからNeo4jデータベースに挿入したデータです。

Neo4jの内容

Py2neo(開発者向けの動作方法): 図3 - Neo4jデータベースの内容

Cypherクエリの実行

Py2neoを使用して、Cypherクエリを使用してグラフデータベースと通信できます:

# Example of a Cypher query
query = """
MATCH (p:Person)
RETURN p.name AS name
"""
results = graph.run(query)
for record in results:
    print(record["name"])
# Example of a Cypher query
query = """
MATCH (p:Person)
RETURN p.name AS name
"""
results = graph.run(query)
for record in results:
    print(record["name"])
PYTHON

コンソール出力

Py2neo(開発者向けの動作方法): 図4 - データベースの内容を示すコンソール出力

IronPDFの紹介

Py2neo(開発者向けの動作方法): 図5 - IronPDFウェブページ

PythonライブラリIronPDFは、PDFのプログラム生成と操作を扱うことができます。 HTMLからPDFを生成し、2つ以上のPDFファイルをマージし、注釈、テキスト、画像を追加して既存のPDFを使用する機能を提供します。 これに加えて、IronPDFは任意のHTMLページまたはウェブベースの素材から質の高いPDFを生成可能にし、後にレポート、請求書、事前に定義されたレイアウトを用いた他のドキュメントを作成するのに使用できます。

このライブラリのいくつかの高度な機能には、ページレイアウトの変更、ドキュメントの暗号化、PDF内のコンテンツ抽出の能力があります。 製品がPDFを扱う方法を改善することによって、その全体的な実用性を向上できるでしょう。 IronPDFがPythonプログラムに統合されると、文書生成操作の自動化にも役立ちます。

IronPDFライブラリをインストールする

次のコマンドを使用して、pipを介してPythonでIronPDFの機能を使用可能にするパッケージをインストールできます。

 pip install ironpdf

Py2neoとIronPDFの統合

PythonでPy2neoとIronPDFを統合するには、IronPDFでPDF処理を管理し、Py2neoを使用してNeo4jグラフデータベースと通信することが必要です。 この統合を達成するための詳細な説明が下に提供されています:

from py2neo import Graph
from ironpdf import *

import warnings
warnings.filterwarnings('ignore')

# Ensure that you have replaced the string with your own license key
License.LicenseKey = "YOUR LICENSE KEY GOES HERE"

# Create a Graph instance with specific configurations
# Replace with your Neo4j credentials and connection details
uri = "bolt://localhost:7687"  # URI for Neo4j Bolt protocol
user = "neo4j"                 # Username
password = "password"          # Password

# Create a connection to the Neo4j database
graph = Graph(uri, auth=(user, password))

content = ''
content += '<h2>User Details</h2>'

# Example of a Cypher query
query = """
MATCH (p:Person)
RETURN p.name AS name
"""
results = graph.run(query)

# Append each name to the content
for record in results:
    content += '<p>' + record["name"] + '</p>'

# Create a PDF from the HTML content
html_to_pdf = ChromePdfRenderer()
pdf_document = html_to_pdf.RenderHtmlAsPdf(content)

# Save the PDF document
pdf_document.SaveAs("output.pdf")
from py2neo import Graph
from ironpdf import *

import warnings
warnings.filterwarnings('ignore')

# Ensure that you have replaced the string with your own license key
License.LicenseKey = "YOUR LICENSE KEY GOES HERE"

# Create a Graph instance with specific configurations
# Replace with your Neo4j credentials and connection details
uri = "bolt://localhost:7687"  # URI for Neo4j Bolt protocol
user = "neo4j"                 # Username
password = "password"          # Password

# Create a connection to the Neo4j database
graph = Graph(uri, auth=(user, password))

content = ''
content += '<h2>User Details</h2>'

# Example of a Cypher query
query = """
MATCH (p:Person)
RETURN p.name AS name
"""
results = graph.run(query)

# Append each name to the content
for record in results:
    content += '<p>' + record["name"] + '</p>'

# Create a PDF from the HTML content
html_to_pdf = ChromePdfRenderer()
pdf_document = html_to_pdf.RenderHtmlAsPdf(content)

# Save the PDF document
pdf_document.SaveAs("output.pdf")
PYTHON

これは、Py2neoを使用してNeo4jグラフデータベースに接続するPythonスクリプトです。 Peopleノードの名前を返すCypherクエリを実行し、結果をHTMLに変換します。 その後、IronPDFを使用してこのHTMLコンテンツを含むPDFドキュメントを作成します。

スクリプトは、すべての必要なライブラリをインポートし、指定された資格情報を使用してNeo4j接続を設定することから始まります。 次にユーザー名のリストをHTML文字列に変換し、IronPDFのChromePdfRendererクラスを使用して"output.pdf"として保存されるPDFを生成します。

Py2neo(開発者向けの動作方法): 図6 - IronPDFとPy2neoを使用して出力されたPDF

ライセンス

ライセンスキーがあれば、コードは透かしなしで動作します。 このリンクで無料の試用ライセンスに登録できます。 識別を示すことなく1つ入手できることを覚えておいてください。 無料試用版にサインアップするには、メールアドレスを提供するだけです。

Py2neo(開発者向けの動作方法): 図7 - IronPDFのライセンスプラン

結論

IronPDFとPy2neoの統合は、Neo4jグラフデータベースに保存されたデータを処理し、可視化するための強力な能力を提供します。 ユーザーとNeo4jの間のコミュニケーションプロセスを大幅に簡素化し、迅速な検索と関連データの取得を可能にします。 これにより、グラフデータベースへのクエリから直接HTMLタグ内のコンテンツを持つ詳細で美的なPDFを簡単に生成する力を得られます。

この統合により、グラフベースのデータを使用した高度な分析と視覚化が可能になり、ビジネスインテリジェンスレポートの作成やデータ関係の把握など、幅広いアプリケーションに効果的に適用できます。 幅広いプラットフォームやオペレーティングシステム、例えばWindows、Android、macOS、Linuxなどでプログラムの開発を容易にするために、IronSoftwareによって提供される膨大なライブラリ群があります。

Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。