ライブ環境でテストする
ウォーターマークなしで本番環境でテストしてください。
必要な場所でいつでも動作します。
FastAPIは、PythonでAPIを構築するための最新の高性能なWebフレームワークです。 それは、簡単に使用および学習できるように設計されており、自動検証、シリアライゼーション、自動インタラクティブAPIドキュメントといった強力な機能を提供します。 さらに、任意のテンプレートエンジンと互換性があり、プロジェクトに必要な任意のデフォルトテンプレート設定を使用することができます。
詳細に踏み込んでみましょう。FastAPI、その機能、およびそれを効果的に使用する方法。 この記事の後半で、我々はまた、次のことを見ていきます。IronPDFIronPDF for Python からの PDF 生成 Python パッケージIron Software.
高パフォーマンス: FastAPIは、ウェブ部分にStarletteを、データ部分にPydanticを使用しているため、Node.jsやGoに匹敵するほど高速なPythonフレームワークの一つです。
使いやすさ: 直感的に使用できるように設計されており、ドキュメントを読む時間を短縮します。 フレームワークは、データの検証とシリアル化のために標準的なPython型ヒントを活用しています。
自動インタラクティブドキュメント: FastAPIはOpenAPIとJSON Schemaを使用してインタラクティブなAPIドキュメントを自動生成し、/docsを通じてアクセス可能です。(Swagger UI)および /redoc(ReDoc)インタラクティブなAPIドキュメントのアップグレードにより、このドキュメントは自動的に更新されます。 代替APIドキュメントのアップグレードにもこれが反映されます。
エディターサポート: VS Codeのようなエディターでのコード補完と型チェックにおいて優れたサポートがあり、開発を迅速化し、エラーを減少させます。
FastAPIをインストールすることができます。Uvicorn (ASGIサーバー)pipを使って:
pip install fastapi
pip install "uvicorn[standard]"
pip install fastapi
pip install "uvicorn[standard]"
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'pip install fastapi pip install "uvicorn[standard]"
以下は、FastAPIを使用してユーザーインターフェースを介してPythonデータを公開するための簡単な例です。
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"Hello": "World"}
@app.get("/items/{item_id}") # with query parameters
def read_item(item_id: int, q: str = None):
return {"item_id": item_id, "q": q}
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"Hello": "World"}
@app.get("/items/{item_id}") # with query parameters
def read_item(item_id: int, q: str = None):
return {"item_id": item_id, "q": q}
from fastapi import FastAPI app = FastAPI() app.get("/") def read_root(): Return
If True Then
"Hello": "World"
End If
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
'@app.@get("/items/{item_id}") # @with query parameters def read_item(item_id: int, q: str = None): Return
'{
''INSTANT VB TODO TASK: The following line uses invalid syntax:
'' "item_id": item_id, "q": q}
アプリケーションを実行するには、Uvicornを使用します。
uvicorn main:app --reload
uvicorn main:app --reload
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'uvicorn main:app --reload
このコマンドは開発サーバーを起動し、コードの変更に対して自動的にリロードします。 インタラクティブなAPIドキュメントは http://127.0.0.1:8000/docs
でアクセスできます。
FastAPIは、高度な機能を幅広くサポートしており、複雑なアプリケーションに適しています。
依存性注入: FastAPIは、依存関係をきれいかつ効率的に管理できる強力な依存性注入システムを提供します。
バックグラウンドタスク: 応答を返した後に実行するバックグラウンドタスクを定義できます。これは、メール送信やデータ処理などのタスクに便利です。
WebSockets: FastAPIはWebSocketsをサポートしており、クライアントとサーバー間のリアルタイム通信を可能にします。
セキュリティ: FastAPI には、OAuth2、JWT トークンなどを含むセキュリティを処理するためのツールが含まれています。
シンプルなCRUDを構築しましょう(作成、読み取り、更新、削除)アイテムを管理するためのAPI。
from pydantic import BaseModel
class Item(BaseModel):
name: str
description: str = None
price: float
tax: float = None
from pydantic import BaseModel
class Item(BaseModel):
name: str
description: str = None
price: float
tax: float = None
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'from pydantic import BaseModel class Item(BaseModel): name: str description: str = None price: float tax: float = None
from fastapi import FastAPI, HTTPException
app = FastAPI()
items = {}
@app.post("/items/")
def create_item(item: Item):
item_id = len(items) + 1
items[item_id] = item
return item
@app.get("/items/{item_id}") # optional str query parameter
def read_item(item_id: int):
if item_id not in items:
raise HTTPException(status_code=404, detail="Item not found")
return items[item_id]
@app.put("/items/{item_id}") # with path parameters
def update_item(item_id: int, item: Item):
if item_id not in items:
raise HTTPException(status_code=404, detail="Item not found")
items[item_id] = item
return item
@app.delete("/items/{item_id}")
def delete_item(item_id: int):
if item_id not in items:
raise HTTPException(status_code=404, detail="Item not found")
del items[item_id]
return {"message": "Item deleted"}
from fastapi import FastAPI, HTTPException
app = FastAPI()
items = {}
@app.post("/items/")
def create_item(item: Item):
item_id = len(items) + 1
items[item_id] = item
return item
@app.get("/items/{item_id}") # optional str query parameter
def read_item(item_id: int):
if item_id not in items:
raise HTTPException(status_code=404, detail="Item not found")
return items[item_id]
@app.put("/items/{item_id}") # with path parameters
def update_item(item_id: int, item: Item):
if item_id not in items:
raise HTTPException(status_code=404, detail="Item not found")
items[item_id] = item
return item
@app.delete("/items/{item_id}")
def delete_item(item_id: int):
if item_id not in items:
raise HTTPException(status_code=404, detail="Item not found")
del items[item_id]
return {"message": "Item deleted"}
404, detail="Item not found"
status_code=404, detail
404, detail="Item not found"
status_code=404, detail
404, detail="Item not found"
status_code=404, detail
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: from fastapi import FastAPI, HTTPException app = FastAPI() items = {} @app.post("/items/") def create_item(item: Item): item_id = len(items) + 1 items[item_id] = item return item @app.get("/items/{item_id}") # optional str query parameter def read_item(item_id: int): if item_id not in items: raise HTTPException(status_code=404, detail="Item not found") return items[item_id] @app.put("/items/{item_id}") # with path parameters def update_item(item_id: int, item: Item): if item_id not in items: raise HTTPException(status_code=404, detail="Item not found") items[item_id] = item return item @app.delete("/items/{item_id}") def delete_item(item_id: int): if item_id not in items: raise HTTPException(status_code=404, detail="Item not found") del items[item_id] return
item Return item app.get("/items/{item_id}") # [optional] str query parameter def read_item(item_id:= Integer): if item_id [not] in items: raise HTTPException(status_code) Return items(item_id) app.put("/items/{item_id}") # [with] path parameters def update_item(item_id: Integer, item: Item): if item_id [not] in items: raise HTTPException(status_code) items(item_id) = item Return item app.delete("/items/{item_id}") def delete_item(item_id: Integer): if item_id [not] in items: raise HTTPException(status_code) del items(item_id) Return
If True Then
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: from fastapi import FastAPI, HTTPException app = FastAPI() items = {} @app.post("/items/") def create_item(item: Item): item_id = len(items) + 1 items[item_id] = item return item @app.get("/items/{item_id}") # optional str query parameter def read_item(item_id: int): if item_id not in items: raise HTTPException(status_code) return items[item_id] @app.put("/items/{item_id}") # with path parameters def update_item(item_id: int, item: Item): if item_id not in items: raise HTTPException(status_code) items[item_id]
len(items) + 1 items(item_id) = item Return item app.get("/items/{item_id}") # [optional] str query parameter def read_item(item_id:= Integer): if item_id [not] in items: raise HTTPException(status_code) Return items(item_id) app.put("/items/{item_id}") # [with] path parameters def update_item(item_id: Integer, item: Item): if item_id [not] in items: raise HTTPException(status_code) items(item_id)
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: from fastapi import FastAPI, HTTPException app = FastAPI() items = {} @app.post("/items/") def create_item(item: Item): item_id = len(items) + 1 items[item_id]
{} app.post("/items/") def create_item(item:= Item): item_id = len(items) + 1 items(item_id)
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: from fastapi import FastAPI, HTTPException app = FastAPI() items = {} @app.post("/items/") def create_item(item: Item): item_id
FastAPI() items = {} app.post("/items/") def create_item(item:= Item): item_id
from fastapi import FastAPI, HTTPException app = FastAPI() items
'INSTANT VB TODO TASK: The following line uses invalid syntax:
' "message": "Item deleted"}
IronPDFは、HTML、CSS、画像、JavaScriptからPDFを作成、編集、署名するために設計された強力なPythonライブラリです。 商業利用レベルのパフォーマンスを、低メモリフットプリントで提供します。 主要な機能には次のものが含まれます:
HTMLファイル、HTML文字列、URLをPDFに変換。 例えば、Chrome PDFレンダラーを使用してウェブページをPDFとしてレンダリングします。
.NET Core、.NET Standard、.NET Frameworkなど、さまざまな.NETプラットフォームに対応。 Windows、Linux、macOSに対応しています。
プロパティを設定し、パスワードとアクセス許可を使用してセキュリティを追加し、PDFに電子署名を適用します。
ヘッダー、フッター、ページ番号、調整可能な余白でPDFをカスタマイズ。 レスポンシブレイアウトとカスタム用紙サイズをサポートします。
PDF/AやPDF/UAなどのPDF標準に準拠。 UTF-8文字エンコーディングをサポートし、画像、CSS、およびフォントなどのアセットを処理します。
pip install fastapi
pip install ironPDF
pip install fastapi
pip install ironPDF
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'pip install fastapi pip install ironPDF
from fastapi import FastAPI
from fastapi.responses import FileResponse
from ironpdf import *
# Apply your license key
License.LicenseKey = "key"
app = FastAPI()
@app.get("/")
def read_root():
return {"Hello": "IronPDF"}
@app.get("/items/{item_id}") # with query parameters
def read_item(item_id: int, q: str = None):
return {"item_id": item_id, "q": q}
@app.get("/pdf")
async def get_pdf(greet1: str = None,greet2: str = None):
renderer = ChromePdfRenderer()
# Create a PDF from a HTML string using Python
content = "<h1>Document Generated using IronPDF with fastapi GET</h1>"
content += "<p> Demonstrate PDF generation using User Inputs"+"</p>"
content += "<p>"+f"Greetings from: {greet1}"+"</p>"
content += "<p>"+f"And Greetings from: {greet2}"+"</p>"
pdf = renderer.RenderHtmlAsPdf(content)
# Export to a file or Stream
pdf.SaveAs("fastapi.pdf")
# To view the file in the browser, use "inline" for the media_type
headers = {
"Content-Disposition": "inline; filename=sample.pdf"
}
# Create a FileResponse object with the file path, media type and headers
response = FileResponse("fastapi.pdf", media_type="application/pdf", headers=headers)
# Return the FileResponse object
return response
from fastapi import FastAPI
from fastapi.responses import FileResponse
from ironpdf import *
# Apply your license key
License.LicenseKey = "key"
app = FastAPI()
@app.get("/")
def read_root():
return {"Hello": "IronPDF"}
@app.get("/items/{item_id}") # with query parameters
def read_item(item_id: int, q: str = None):
return {"item_id": item_id, "q": q}
@app.get("/pdf")
async def get_pdf(greet1: str = None,greet2: str = None):
renderer = ChromePdfRenderer()
# Create a PDF from a HTML string using Python
content = "<h1>Document Generated using IronPDF with fastapi GET</h1>"
content += "<p> Demonstrate PDF generation using User Inputs"+"</p>"
content += "<p>"+f"Greetings from: {greet1}"+"</p>"
content += "<p>"+f"And Greetings from: {greet2}"+"</p>"
pdf = renderer.RenderHtmlAsPdf(content)
# Export to a file or Stream
pdf.SaveAs("fastapi.pdf")
# To view the file in the browser, use "inline" for the media_type
headers = {
"Content-Disposition": "inline; filename=sample.pdf"
}
# Create a FileResponse object with the file path, media type and headers
response = FileResponse("fastapi.pdf", media_type="application/pdf", headers=headers)
# Return the FileResponse object
return response
#Apply your license key
'INSTANT VB WARNING: An assignment within expression was extracted from the following statement:
'ORIGINAL LINE: from fastapi import FastAPI from fastapi.responses import FileResponse from ironpdf import * License.LicenseKey = "key" app = FastAPI() @app.get("/") def read_root(): return
"key" app = FastAPI() app.get("/") def read_root(): Return
If True Then
From fastapi import FastAPI From fastapi.responses import FileResponse From ironpdf import * License.LicenseKey = "key" app
"Hello": "IronPDF"
End If
'INSTANT VB TODO TASK: Local functions are not converted by Instant VB:
'@app.@get("/items/{item_id}") # @with query parameters def read_item(item_id: int, q: str = None): Return
'{
' "item_id": item_id, "q": q
'}
#Create a PDF from a HTML string using Python
#Export to a file or Stream
#To view the file in the browser, use "inline" for the media_type
#Create a FileResponse object with the file path, media type and headers
#Return the FileResponse object
'INSTANT VB TODO TASK: The following line uses invalid syntax:
'@app.@get("/pdf") async def get_pdf(greet1: str = None,greet2: str = None): renderer = ChromePdfRenderer() content = "<h1>Document Generated using IronPDF with fastapi GET</h1>" content += "<p> Demonstrate PDF generation using User Inputs"+"</p>" content += "<p>"+f"Greetings from: {greet1}"+"</p>" content += "<p>"+f"And Greetings from: {greet2}"+"</p>" pdf = renderer.RenderHtmlAsPdf(content) pdf.SaveAs("fastapi.pdf") headers = { "Content-Disposition": "inline; filename=sample.pdf" } response = FileResponse("fastapi.pdf", media_type="application/pdf", headers=headers) Return response
このコードスニペットは、FastAPIとIronPDFの統合を示しており、ユーザーの入力に基づいて動的にPDFドキュメントを生成し、ダウンロード可能なレスポンスとして提供します。
ライセンスキーの設定: IronPDFのライセンスキーを適用して、その機能を有効にします。
FastAPIの初期化: FastAPIインスタンスを初期化します(`アプリ`)HTTPリクエストを処理する。3. 基本ルートハンドラ: `read_root()`:ルートURLにアクセスしたときに「Hello IronPDF」というJSONメッセージで応答します。(`/`). **`read_item():
item_idパスパラメーターとオプションの
q` クエリパラメーターを受け取ります。 これらの関数パラメータを伴ったJSON応答を返します。
PDF生成ルート(`/pdf`): `get_pdf()`**:
/pdf
エンドポイントへのGETリクエストを処理します。(greet1
および greet2
).greet1
および greet2
). `ChromePdfRenderer` を使用()IronPDF を使用して HTML コンテンツを PDF にレンダリングします(\
pdf = renderer.RenderHtmlAsPdf(内容)`).FileResponse
オブジェクトを作成します。(「application/pdf」).FileResponse
オブジェクトを返し、/pdf
エンドポイントにアクセスした際にPDFドキュメントのダウンロードが開始されます。このコードスニペットは、FastAPIと統合して、ユーザーの入力に基づいてPDFドキュメントを動的に生成および提供するためにIronPDFをどのようにシームレスに統合できるかを示しています。 HTMLコンテンツをPDFに変換する能力を示しており、HTTP経由でのオンデマンドのドキュメント生成や配信を必要とするアプリケーションに適しています。
以下は、APIから生成されたSwagger出力を示しています。
IronPDFはPythonのライセンスキーで動作します。 IronPDF for Pythonは無料試用ライセンスキーで購入前に機能を確認できるようにする。
IronPDFパッケージを使用する前に、スクリプトの先頭にライセンスキーを配置します。
from ironpdf import *
# Apply your license key
License.LicenseKey = "key"
from ironpdf import *
# Apply your license key
License.LicenseKey = "key"
IRON VB CONVERTER ERROR developers@ironsoftware.com
FastAPIは、PythonでAPIを構築するための強力で使いやすいフレームワークです。 FastAPIは高性能、自動ドキュメント、そして高度な機能を備えており、初心者と経験豊富な開発者の両方にとって優れた選択肢です。 シンプルなAPIや複雑なWebアプリケーションを構築している場合でも、FastAPIは成功するために必要なツールを提供します。
IronPDFは、HTMLコンテンツからPDFドキュメントを作成、操作、およびレンダリングするための堅牢なPythonライブラリです。 HTMLからPDFへの変換、インタラクティブフォームの作成、PDF操作などの機能を提供します。(結合, 分割)、テキスト抽出。 さまざまなPythonアプリケーションに簡単に統合し、動的なPDFを手軽に生成するのに最適です。
9つの .NET API製品 オフィス文書用