0
0

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】PythonのWeb開発の概要だけ把握

Last updated at Posted at 2025-04-08

はじめに

最近ハッカソンでPython(FastAPI)を使いかける機会があり少し勉強しました。使いはしなかったものの一応その概要とオブジェクト指向について思考整理としてアウトプットしておくことにしました。オブジェクト指向の方は記事として切り出したほうが読みやすい気がしたので別記事に書きます。
全く土地勘といえるほどの内容ではないのですが、Pythonを使ったWeb開発で急ぎでどういう技術がいい感じなのかというちょっとした概要を知りたい方の参考になれば幸いです。

Python概要

  • 動的型付け言語
  • プログラミングスタイルとしてはオブジェクト指向が主流
  • 型ヒント(Type Hints)と静的型チェックツール(mypyなど)を併用することで、Pythonの利点である「迅速な開発やプロトタイピングの容易さ」を維持しつつ、型安全性も両立することができる。
  • データ分析や機械学習、Web開発など幅広い分野で使われている。

よく使われるライブラリ(Web開発)

Webフレームワーク

FastAPI

  • 軽量で高速でモダンな機能も豊富
  • API開発に特化している

Flask

  • 小規模〜中規模開発に向いてる
  • 軽量
  • 迅速な開発に向いてる

Django

  • 保守性と迅速な開発を両立したフルスタックフレームワーク
  • 中規模〜大規模開発に向いてる

テストツール

pytest

  • 機能幅も広くサービス規模問わず使われている。

unittest

  • 標準ライブラリ

orm

SQLAlchemy

  • 標準的立ち位置
  • 大規模システムの開発に向いてる
  • 複雑なDB構造を持つサービスの開発に向いてる

Peewee

  • 小規模〜中規模開発に向いてる
  • 軽量

Tortois ORM

  • FastAPIと相性良い。
  • 小規模〜中規模開発に向いてる

マイグレーションツール

Alembic

  • 標準的
  • 複雑なクエリやスケーラビリティが重要なプロジェクトに向いてる
  • 基本的にSQLAlchemyとセットで使われる
  • 中規模〜大規模開発に向いてる

simple-db-migrate

  • シンプル
  • 小規模〜中規模開発に向いてる

Linter

Ruff

  • Linter、Formatter、import sortingを高い質で行うことができ、今のところ最も高速と言われているツール
  • できて数年でGithubスター数も3.7万と勢いがある
  • 比較的新しく、ドキュメントやコミュニティが成熟していない

Flake8

  • シンプル
  • 歴史が長く成熟しており、広く普及している。
  • 小規模〜中規模開発に向いてる

Pylint

  • 歴史が長く、成熟している
  • 大規模開発に向いてる
0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?