Navigation

Related Articles

Back to Latest Articles

Djangoでモジュールを作りviews.pyからimportして呼び出す


press
Djangoでモジュールを作りviews.pyからimportして呼び出す

Djangoでモジュールを作りviews.pyからimportして呼び出す方法です。

同じ処理を何度も書いたり、同じ処理を複数回呼び出したりするときは、その処理をモジュール化してviews.pyからimportして呼び出すことでプログラムの再利用が出来るので記述量を減らすことがきます。
プログラムの規模が一定以上になってくると全体の見通しが悪くなってくるので、複数回出てくる処理はモジュール化するとメンテナンスがしやすいです。

今回はサンプルとして値を渡して計算結果を返すプログラムを作ります。

ディレクトリ構造

mymodule
│
├── modules
│   └── modueltest.py
├── __init__.py
├── admin.py
├── apps.py
├── models.py
├── tests.py
└── views.py

views.py

from django.http import HttpResponse
from mymodue.modules import moduletest


def module(request):

    num = 1
    total = moduletest.calculator(num)

    return HttpResponse(total)

from <ディレクトリ> import <モジュール>でインポートします。import以降はファイル名を指定します。
インポートしたmoduletestに1を代入したnumを渡し、結果をtotalに代入します。その後、HttpResponseで表示します。

PROJECT/url.py

import mymodule.views

urlpatterns = [
    path('module/', mymodule.views.module, name='module test'),

]

/moduleでアクセス出来るようにurlpatternsに追加します。

moduletest.py

def calculator(num):
    total = num + 2

    return (total)

views.pyから受け取った1が入ったnumに2を足してtotalに代入します。

テストサーバーを起動してhttp://127.0.0.1:8000/moduleにアクセスすると計算結果が表示されます。


当ブログは群馬県でPython / Djangoを中心にウェブアプリケーションを開発している株式会社ファントムが運営しています。

株式会社ファントムへのお問い合わせ




    Show Comments (0)

    Comments

    Related Articles

    Python

    def文を用いて共通の処理を関数化する

    以下の2つの記事の応用編です。 今回のポイントは以下の2つです。 ・気温の処理を関数化・Matplotlibで複数のグラフを出力 コードはGitHubリポジトリにあげています。 コード 出力結果 以下の様な気温と降水確率 […]

    Posted on by press
    Python

    PythonistaでiPhoneから株価をスクレイピング

    Pythonistaには多くのモジュールがプリインストールされていて、スクレイピングに必要なBeautifulSoupも初めから使える様になっています。そこで、今回はiOSアプリのPythonistaを使ってiPhone […]

    Posted on by press