DjangoでWebアプリを作る3つのメリット

 

こんにちは。のっくん(@yamagablog)です。

 

この記事ではDjangoでwebアプリを作るメリットをご紹介していきます。

 

「Djangoって何だろう?」

「Webアプリを作ってみたいんだけど、何を使えば良いんだろう?」

 

そんな方に読んでいただければと思います。

 

 

ネット上に公開できる

 

これはDjangoに限らず全てで言えることですが、webアプリにすることでネット上に公開できます。

 

Pythonが好きで、例えば自分でスクレイピングするコードを書いたぜ〜って時はwebアプリにして公開するのが良いです。

 

他の人にPythonのコードを渡して動かしてもらってもいいですがPythonをインストールしてもらわないといけません。

 

webアプリにするとブラウザでアクセスできるので誰でも見ることができます。

 

PythonであればwebフレームワークであるDjangoを使うのがオススメです。

 

Pythonでコーディング → Djangoで公開する流れがスムーズです。

 

 

webアプリは、RubyとかPHPで書くこともできますができるだけ同じ言語で書いた方が良いです。

 

なぜなら保守するときにいろんな言語が混じってると扱いづらいですしデータのやりとりも複雑になってしまいます。

 

私もDjangoでwebアプリを作ってPythonAnywhereというサイトで公開しています。

 

Soccer Talk:掲示板アプリ

 

Pythonは機械学習や画像処理、スクレイピングに強いのでこれからももっと広がっていく言語です。

 

ちなみに、Djangoは2018年のQiita流行語大賞にも選ばれており今後普及していく可能性が高いフレームワークです。

 

第3位 「Django」

第2位 「AWS」

第1位 「C++」

2018年Qiita流行語大賞

 

リストや辞書が使える

 

DjangoはPythonのライブラリなので、当然リストや辞書が使えます。

 

例えば、私の作ったアプリNewScrapeのなかで集めてきたニュースをHTMLに渡す時に以下のように書いています。

 

def index(request):

    entry_num = 15

    params = {
        'form': SearchForm()
    }

    if request.method == 'POST':

        keyword = request.POST['keyword']
        articles = scraping_news.scrape_news(keyword, entry_num)

        params = {
            'articles': articles,
            'form': SearchForm(request.POST)
        }

    return render(request, 'top.html', params)

 

paramsという辞書に集めてきたニュース記事のリストを入れてHTMLに渡しています。

 

Pythonユーザにとってはリストや辞書が使えるのがDjangoを使う大きなメリットです。

 

テンプレート生成もやり易い

 

先ほどの記事のリストを1つずつブラウザに表示するにはどうすれば良いのでしょうか。

 

Pythonに詳しい方ならfor文で回して展開すれば良いじゃんって思うと思います。その通りです。

 

Djangoでは、テンプレートタグという機能がありましてこの機能を使うとPythonでテンプレート(HTMLファイル)を作ることができます。

 

百間は一文に如かずということでコードを見てみましょう。

 

{% for a in articles %}
    <a href="{{ a.link }}" target="_blank">{{ a.title }}</a>
{% endfor %}

 

{% %}で囲まれた部分でPythonのfor文を使っています。このコードだけで記事のタイトル一覧を表示することができます。

 

2018/12/15日追記:

「Pythonのfor文」ではなく、「Pythonテンプレートエンジンのjinja2のfor文」でした。ご指摘いただいた方ありがとうございます。

ちなみにテンプレートエンジンの種類ですが、Mako、Genshi、Jinja2 など色々あるみたいです。

 

まとめ

 

・Pythonが好きならDjangoを学ぼう
・Djangoはシンプルで使いやすいフレームワーク
・Djangoでは辞書やリストが使える

 

ABOUTこの記事をかいた人

個人アプリ開発者。Python、Swift、Unityのことを発信します。月間2.5万PVブログ運営。 Twitter:@yamagablog