fastapi 公開 Web 構成ページ

fastapi 公開 Web 構成ページ

FastAPI は、Web 開発プロセスを簡素化するための多くの機能を提供する Python ベースの高速 Web 開発フレームワークです。重要な機能の 1 つは、API ドキュメント ページを簡単に作成できることです。

FastAPI では、OpenAPI と Swagger を使用して API ドキュメント ページを作成できます。以下は、FastAPI を使用して API ドキュメント ページを備えたアプリケーションを作成する方法を示す簡単な例です。

1. まず、新しい FastAPI アプリケーションを作成します。ターミナルに次のコマンドを入力します。

pip install fastapi

2. 新しい Python ファイルで FastAPI アプリケーションを作成しますapp.py次のコードを入力します。

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
async def read_root():
    return {
    
    "message": "Hello, World!"}

@app.get("/items/{item_id}")
async def read_item(item_id: int, q: str = None):
    return {
    
    "item_id": item_id, "q": q}

3. 同じディレクトリにファイルを作成して、main.cssカスタム CSS スタイルを提供します。このファイルはオプションですが、ドキュメント ページに美化やカスタム スタイルを追加できます。

  1. アプリケーションを実行します。ターミナルに次のコマンドを入力します。
uvicorn app:app --host 0.0.0.0 --port 8000

5. 次に、ブラウザを開いて にアクセスするとhttp://localhost:8000/docs、API ドキュメント ページが表示されます。ページが表示されない場合は、アプリケーションが実行中であり、正しい URL にアクセスしていることを確認してください。

上記のコードでは、FastAPI のルート デコレーターを使用して、@app.get()ルート パス/とという 2 つの API エンドポイントを定義します/items/{item_id}次に、OpenAPI と Swagger を使用して API ドキュメント ページを生成します。/docsユーザーがルートにアクセスすると、定義した API エンドポイントの情報、パラメーター、戻り値を含むインタラクティブなドキュメント ページが表示されます。

ドキュメント ページでは、いくつかの事前定義されたタグと属性を使用して API を説明できます。たとえば、ルート デコレーターでは、 を使用して{item_id}パス パラメーターを表し、その型を整数として指定します。さらに、文字列型のオプションのクエリ パラメーターを定義しますqこの情報は、生成されたドキュメント ページに自動的に反映されます。

FastAPI は、ドキュメント ページを自動的に生成するだけでなく、Web 開発プロセスを簡素化するための他の多くの機能とツールを提供します。たとえば、リクエストとレスポンスの自動検証、非同期処理のサポート、ミドルウェアのサポートなどをサポートします。より高度な機能や複雑な API が必要な場合は、FastAPI を使用すると、高品質の Web アプリケーションを迅速に開発できます。

完全なコード

from fastapi import FastAPI, Form
from fastapi.responses import HTMLResponse

app = FastAPI()

@app.get("/")
def index():
    form = """
            <!DOCTYPE html>
    <html>
    <head>
      <title>配置界面</title>
    </head>
    <body>
      <div class="container"  style="text-align:center; position:relative;">
      <h1>配置界面</h1>

      <form method="post" action="/submit2">
        <label for="name">名称:</label>
        <input type="text" id="name" name="name" placeholder="输入名称"><br><br>

        <label for="email">邮箱:</label>
        <input type="email" id="email" name="email" placeholder="输入邮箱"><br><br>

        <label for="password">密码:</label>
        <input type="password" id="password" name="password" placeholder="输入密码"><br><br>

        <label for="country" left:0>国家:</label>
        <select id="country" name="country">
          <option value="china">中国</option>
          <option value="usa">美国</option>
          <option value="uk">英国</option>
          <option value="germany">德国</option>
        </select><br><br>

        <label for="gender" left:0>性别:</label>
        <input type="radio" id="male" name="gender" value="male">
        <label for="male">男</label>
        <input type="radio" id="female" name="gender" value="female">
        <label for="female">女</label><br><br>

        <label for="interests">兴趣:</label>
        <input type="checkbox" id="sports" name="interests" value="sports">
        <label for="sports">运动</label>
        <input type="checkbox" id="music" name="interests" value="music">
        <label for="music">音乐</label>
        <input type="checkbox" id="movies" name="interests" value="movies">
        <label for="movies">电影</label><br><br>

        <input type="submit" value="保存">
      </form>
      </div> 
    </body>
    </html>
        """
    return HTMLResponse(content=form, status_code=200)


@app.post("/submit2")
def submit2(email:str =  Form(...),name: str = Form(...), password: str = Form(...),gender: str = Form(...)):
    print(email,name, password,gender)
    return {
    
    "message": "Configuration submitted successfully"}


if __name__ == "__main__":
    import uvicorn
    uvicorn.run(app, host="0.0.0.0", port=8000)

Web ページ 127.0.0.1:8000 を開きます
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/sinat_35773915/article/details/132360630