1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

PythonでWebサーバー立てるなら?【QAC25 Day4】

Last updated at Posted at 2025-12-03

Day4 PythonでWebサーバー立てるなら?

気付いたかもしれませんが,ある言語(またはジャンル)毎に区切っていい感じにあげていきます.

Webサーバーって?

通常,皆さんが見ているWebページ,このページもそうですが.

サーバーというものがあり,あなたのリクエストにこたえる形でページの情報が送り返されます.

内部で色々処理をやって返す場合もあります.んで,その後者の方を今回は紹介します.

動的サーバー (APIサーバー) について

説明はこれに任せます.

まぁなんかユーザーの処理によっていろいろ変更していきます.ここ以下は動的サーバーの知識はあるとします.我々エンジニア初心者は,TODOアプリを絶対作ると思うのですが,そこでの感じの話をしていきます.

フレームワークってやつ

きっと皆さまFlaskやDjango,FastAPIやSanicなどを頭に浮かべたでしょう.

もちろんこれらもきっと便利な機能があったりドキュメントが豊富だったりするでしょう…が

今回ご紹介させていただくのは…aiohttp.web.Applicationです.

もっと低レイヤー的な考え方

(正確には低レイヤーでも何でもないが)

皆様FlaskやFastAPIそこらへんに慣れすぎです.ログイン機構とかルーティングシステムとか全て丸投げして…まったくもう…

我々エンジニアは車輪の再発明とか「自分の考えた最強の暗号化方式」をやるべきなんですよ.

もちろん,実務で使うものは一回おいておいて,自分の趣味であればいろいろ自分でやってみるべきだと思うんですよ.

from aiohttp.web import Application, RouteTableDef, run_app, Response, Request

app = Application()
routes = RouteTableDef()

@routes.get('/')
async def hello(req: Request):
    return Response(text="Hello, world")

if __name__ == "__main__":
    app.add_routes(routes)
    web.run_app(app)

こちらがサンプルコードです.

割とよく見るフレームワークに似ていて,いいと思いませんか?

デコレータを使わない方法もあります.

from aiohttp.web import Application, get, run_app, Response, Request

app = Application()

async def hello(req: Request):
    return Response(text="Hello, world")

if __name__ == "__main__":
    app.add_routes([web.get('/', hello)])
    run_app(app)

こっちのデコレーターを使わない方法のメリットとしては,ファイル分割が分かりやすいことですね.

DiscordBOTを開発するとき,機能がめちゃくちゃ増えてくるとCog (Extension)というものに手を出す方が多いかなと思うんですけど,それっぽいことを自前で出来るので,Cog使った開発をめちゃくちゃやっていた私としてはこっちの方がいいっていうだけです.

まぁお勧めする理由としては,ほぼ上記の理由に加えて,シンプルなシステムにしたいのに様々な機能を提供されても使わないんで邪魔やな!っていうだけです.

それではあなたも

PythonでWebサーバーを立てるなら,aiohttp.web.Applicationを使ってみてはいかがでしょうか.

どうせ非同期でHTTP操作をするならaiohttp使うんだからまぁいいでしょう.

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?