🩺

【Python】FastAPI MariaDBに接続し、テキストで出力

2022/08/02に公開

Python強化期間

Pythonの仮想環境に入る

python3 -m venv venv

FastAPIインストール

pip install fastapi

dotenvインストール

pip install python-dotenv

mysqlclientインストール

pip install mysqlclient

uvicorn インストール

pip install uvicorn

.env

HOST = '127.0.0.1'
DATABASE = 'test_db'
USER_AA = 'root'
PASSWORD = '0123'

test_maria.py

from fastapi import FastAPI
import mysql.connector
from dotenv import load_dotenv
import sys
import os

data = [

    {'id': 't001', 'name': 'apple', 'mean': 'りんご'},
    {'id': 't002',  'name': 'orange', 'mean': 'オレンジ'},
    {'id': 't003', 'name': 'banana', 'mean': 'バナナ'},
    {'id': 't004', 'name': 'strawberry', 'mean': 'いちご'}
]


def get_data_proc(sql_str):
    sys.stderr.write(sql_str + "\n")
    conn = mysql.connector.connect(user=user_aa, password=password_aa,
                                   host=host_aa,database=data_base)

    cursor = conn.cursor(dictionary=True)
    cursor.execute(sql_str)
    rows = cursor.fetchall ()
    cursor.close()
    conn.close()

    return rows

dotenv_path = '.env'
pip install uvicornload_dotenv(dotenv_path)

host_aa=os.environ.get("HOST")
data_base=os.environ.get("DATABASE")
user_aa=os.environ.get("USER_AA")
password_aa=os.environ.get("PASSWORD")
#

app = FastAPI()

@app.get("/")
def say_hello():
    return {"Hello": "World"}

@app.get("/data_fruit/")
def read_all():
    return data

下記で実行

uvicorn test_maria:app --reload

参考: https://qiita.com/ekzemplaro/items/d63bbaae9ed99003f87e

Discussion