今すぐお試しください!

製品の詳細CData Python Connector for USPS を確認して、無償評価版をダウンロード:

今すぐダウンロード

Dash を使って、USPS Data に連携するウェブアプリケーションを開発

CData Python Connector for USPS を使って、USPS にデータ連携するPython ウェブアプリケーションを開発できます。pandas とDash を使って作成してみます。

Pythonエコシステムには、多くのモジュールがあり、システム構築を素早く効率的に行うことができます。CData Python Connector for USPS を使うことで、pandas モジュールとDash フレームワークでUSPS にデータ連携するアプリケーションを効率的に開発することができます。本記事では、pandas、Dash とCData Connector を使って、USPS に連携して、USPS data をビジュアライズするシンプルなウエブアプリを作ります。

CData Python Connector は、ビルトインされた効率的なデータプロセスにより、リアルタイムUSPS data データにPython からアクセスし、高いパフォーマンスと接続性を発揮します。USPS に複雑なクエリを投げる際に、ドライバーはフィルタリング、集計などがサポートされている場合、SQL 処理を直接USPS 側に行わせ、サポートされていないSQL 処理については、組み込まれたSQL エンジンによりクライアント側で処理を行います(特にJOIN やSQL 関数など)。

USPS Data への接続

USPS data への連携は、RDB ソースへのアクセスと同感覚で行うことができます。必要な接続プロパティを使って接続文字列を作成します。本記事では、接続文字列をcreate_engine 関数のパラメータとして送ります。

To authenticate with USPS, set the following connection properties.

  • PostageProvider: The postage provider to use to process requests. Available options are ENDICIA and STAMPS. If unspecified, this property will default to ENDICIA.
  • UseSandbox: This controls whether live or test requests are sent to the production or sandbox servers. If set to true, the Password, AccountNumber, and StampsUserId properties are ignored.
  • StampsUserId: This value is used for logging into authentication to the Stamps servers. This value is not applicable for Endicia and is optional if UseSandbox is true.
  • Password: This value is used for logging into Endicia and Stamps servers. If the postage provider is Endicia, this will be the pass phrase associated with your postage account. It is optional if UseSandbox is true.
  • AccountNumber: The shipper's account number. It is optional if UseSandbox is true.
  • PrintLabelLocation: This property is required to use the GenerateLabels or GenerateReturnLabels stored procedures. This should be set to the folder location where generated labels should be stored.

The Cache Database

Many of the useful task available from USPS require a lot of data. To ensure this data is easy to input and recall later, utilize a cache database to make requests. Set the cache connection properties in order to use the cache:

  • CacheLocation: The path to the cache location, for which a connection will be configured with the default cache provider. For example, C:\users\username\documents\uspscache

As an alternative to CacheLocation, set the combination of CacheConnection and CacheProvider to configure a cache connection using a provider separate from the default.

以下の手順に従い、必要なモジュールをインストールし、Python オブジェクト経由でUSPS にアクセスします。

必要なモジュールのインストール

pip で必要なモジュールおよびフレームワークをインストールします:

pip install pandas
pip install dash
pip install dash-daq

Python でUSPS Data をビジュアライズ

必要なモジュールとフレームワークがインストールされたら、ウェブアプリを開発していきます。コードのスニペットは以下の通りです。フルコードは記事の末尾に付いています。

まず、CData Connector を含むモジュールをインポートします:

import os
import dash
import dash_core_components as dcc
import dash_html_components as html
import pandas as pd
import cdata.usps as mod
import plotly.graph_objs as go

接続文字列を使ってデータへの接続を確立します。connect 関数を使ってCData USPS Connector にUSPS data との接続を確立します。

cnxn = mod.connect("PostageProvider=ENDICIA; RequestId=12345; Password='abcdefghijklmnopqr'; AccountNumber='12A3B4C'")

USPS にクエリを実行

read_sql 関数を使って、padas からSQL 文を発行し、DataFrame に結果を格納します。

df = pd.read_sql("""SELECT FirstName, Phone FROM Senders WHERE SenderID = '25'""", cnxn)

ウェブアプリケーションの設定

DataFrame に格納されたクエリ結果を使って、ウェブアプリにname、stylesheet、title を設定していきます。

app_name = 'dash-uspsedataplot'

external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']

app = dash.Dash(__name__, external_stylesheets=external_stylesheets)
app.title = 'CData + Dash'

Layout 設定

次に、USPS data をベースにした棒グラフを作詞し、アプリのレイアウトを設定します。

trace = go.Bar(x=df.FirstName, y=df.Phone, name='FirstName')

app.layout = html.Div(children=[html.H1("CData Extention + Dash", style={'textAlign': 'center'}),
	dcc.Graph(
		id='example-graph',
		figure={
			'data': [trace],
			'layout':
			go.Layout(title='USPS Senders Data', barmode='stack')
		})
], className="container")

アプリをセットアップして、実行n

接続、アプリ、レイアウトを定義したら、アプリを実行してみましょう。Python コードの最後はこのようです。

if __name__ == '__main__':
    app.run_server(debug=True)

では、Python でウェブアプリを稼働させて、ブラウザでUSPS data を見てみましょう。

python usps-dash.py

製品の無償トライアル情報

USPS Python Connector の30日の無償トライアル をぜひダウンロードして、USPS data への接続をPython アプリやスクリプトから簡単に作成しましょう。



import os
import dash
import dash_core_components as dcc
import dash_html_components as html
import pandas as pd
import cdata.usps as mod
import plotly.graph_objs as go

cnxn = mod.connect("PostageProvider=ENDICIA; RequestId=12345; Password='abcdefghijklmnopqr'; AccountNumber='12A3B4C'")

df = pd.read_sql("SELECT FirstName, Phone FROM Senders WHERE SenderID = '25'", cnxn)
app_name = 'dash-uspsdataplot'

external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']

app = dash.Dash(__name__, external_stylesheets=external_stylesheets)
app.title = 'CData + Dash'
trace = go.Bar(x=df.FirstName, y=df.Phone, name='FirstName')

app.layout = html.Div(children=[html.H1("CData Extention + Dash", style={'textAlign': 'center'}),
	dcc.Graph(
		id='example-graph',
		figure={
			'data': [trace],
			'layout':
			go.Layout(title='USPS Senders Data', barmode='stack')
		})
], className="container")

if __name__ == '__main__':
    app.run_server(debug=True)
 
 
ダウンロード