質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

意見交換

クローズ

6回答

816閲覧

Flaskのルーティングにおける関数の命名について

glyzinieh

総合スコア208

Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2023/12/04 03:59

編集2023/12/04 05:05

0

1

Flaskを用いて、何らかの情報(蔵書や名簿など)を管理するコードを書くと、以下のようになると思います。

この程度であれば問題ありませんが、登録などの処理を実装しようとすると、関数名がぐちゃぐちゃになってしまいます。
特にルーティング部分の関数(下記の例だとindex, return_list, return_detail)の命名に、ベストプラクティスはあるのでしょうか?

ネットで検索しても、ほとんど情報がヒットせず困っています。
アドバイスよろしくお願いいたします。

Python

1# 省略 2 3# トップページを表示 4@app.get("/") 5def index(): 6 return render_template("index.html") 7 8# 一覧を取得 9def get_list(): 10 # DB等から取得 11 return data_list 12 13# 一覧を表示 14@app.get("/list/") 15def return_list(): 16 data = get_list() 17 return render_template("list.html", data = data) 18 19# 詳細情報を取得 20def get_detail(): 21 # DB等から取得 22 return data_detail 23 24# 詳細情報を表示 25@app.get("/detail/<string:id>/") 26def return_detail(): 27 data = get_detail() 28 return render_template("detail.html", data = data) 29 30# 省略

追記

「調査したこと・試したことが記載されていない質問」というご指摘をいただきました。
Googleで「Flask 命名規則」などと検索しましたが、PEP8に関する情報ばかりがヒットし、どのような名前にすれば良いかが分かりません。
想定通りに動作しない訳ではないため試したことは特にありませんが、一般的にどのような命名がされているのかを知りたいと思っています。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

回答6

#1

TakaiY

総合スコア12774

投稿2023/12/04 05:18

「関数名がぐちゃぐちゃになってしま」うというのがどういう状況なのかわからなのですが、「return_??」のように何を返すかではなく、関数の役割で考えることが多いですね。

register_user_info
show_cart_contents
get_account_list
delete_account

など。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#2

glyzinieh

総合スコア208

投稿2023/12/04 05:30

#1 TakaiYさん、ありがとうございます。

そうなんですね!
分かりました。

ちなみにindexのような静的ページはどのようにしますか?

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#3

can110

総合スコア38266

投稿2023/12/04 05:42

Claudeの回答

Webアプリケーションの関数名やルーティングの命名にはいくつかのベストプラクティスがあります。

  • 機能を明確に表す名前を付ける
  • 例: get_books()reserve_book()
  • CRUD操作を表す一般的なprefixを使う
  • 例: get_post_put_delete_
  • リソース名を先に置く
  • 例: book_list()book_detail()
  • 名詞を使う(動詞は避ける)
  • 例: booksusers
  • 複数形を使う
  • 例: booksusers
  • アンダースコア(_)で区切る(カメルケースは避ける)

したがって、たとえば図書館システムの場合は以下のような命名が適切でしょう。

  • get_books() - 蔵書リストを取得
  • get_book_detail() - 個別の蔵書詳細を取得
  • get_users() - 利用者リストを取得
  • post_reserve_book() - 本の予約を作成
  • get_reservations() - 予約リストを取得

ルーティングでも同様の命名規則を使うことをおすすめします。

また、Flaskに限らず、URLや関数の命名規則に焦点を当てたおすすめのサイトをいくつか紹介します。

命名規則を体系的にまとめたドキュメントは少ないので、これらのガイドラインを組み合わせて参照することをオススメします。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#4

glyzinieh

総合スコア208

投稿2023/12/04 06:15

#3 can110さん、ありがとうございます。

大変参考になりました。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#5

TakaiY

総合スコア12774

投稿2023/12/04 06:20

indexのような静的ページはどのようにしますか?

indexというのは index.html のことだと思いますが、これは、単にHTTPサーバの仕様で何も指定されなければその名前のページが表示されることから来ています(と思っている)。

前の回答や他の方の回答にもあるとおり、それがどのような事をするものなのかによって命名すればよく、本当にインデックス(目次)なのであればindexでいいでしょうし、そうでなければそのページの役割で考えるのがいいんじゃないでしょうか。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#6

glyzinieh

総合スコア208

投稿2023/12/04 06:22

#5
そのページが持つ機能や役割を重視することが大切ということですね
ありがとうございます!

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

最新の回答から1ヶ月経過したため この意見交換はクローズされました

意見をやりとりしたい話題がある場合は質問してみましょう!

質問する

関連した質問