PyCharmとDjangoでサクッとWebアプリの作成


はじめに

PyCharmでDjangoアプリを作成することには次のような利点があります。

  • Django関連のコマンド入力を削減できる
  • デバッグがしやすい

今回は、Djangoサーバの起動と簡単なWebアプリの作成を行ってみます。

Djangoサーバの起動

PyCharmを開くと次のような画面が現れるので、Create New Projectをクリックします。

次に左側からDjangoを選択します。ここではDjangoのプロジェクト名はuntitled4となっています。また、Application namepollsと入力し、Createをクリックします。

少し待つとプロジェクトとアプリケーションが作成されます。右上の三角形のボタンをクリックするとDjangoサーバが起動します。自分の環境ではなぜかosが定義されていなかったため、settings.pyimport osと記述します。

記述したあとで再度右上の三角形のボタンをクリックするとDjangoサーバのURLが表示されるのでクリックします。

次のような画面がWebブラウザで表示されます。

Webアプリの作成

Djangoのプロジェクトとアプリケーションは次のような関係となっています。プロジェクトとアプリケーションについて、2種類のurls.pyを用いることで、アプリケーションごとの管理がしやすくなります。

画像元:https://zenn.dev/hathle/books/django-blog-book/viewer/06_urls

2つのurls.pyviews.pyを変更することで、Webサイトを自作できます。
pollsディレクトリ内にurls.pyを新規作成し、次のように記入します。

from django.conf.urls import url
from . import views
urlpatterns = [
    url(r'^$', views.index, name='index'),
]

プロジェクト直下にもとから作成されているurls.pyに、次のように記入します。

from django.conf.urls import include, url
from django.contrib import admin
urlpatterns = [
    url(r'^polls/', include('polls.urls')), #this line added
    url(r'^admin/', admin.site.urls),
]

pollsディレクトリ内にviews.pyに、次のように記入します

from django.http import HttpResponse

def index(request):
    # render() に置き換えると、用意したHTMLファイルにrequestやPythonの変数を渡すこともできる
    return HttpResponse("Hello, world. You're at the polls index.")

実行ボタンをクリックまたはcontrol+Rとしてhttp://127.0.0.1:8000/polls/にアクセスすると、Hello, world. You're at the polls index.と表示されます。

その他Tips

  • サーバの実行状態でプログラムを書き換えてcommand+Sと保存したりタブを切り替えると、自動的にサーバをリロードしてくれます。

  • Djangoでデータベースなどのコマンド操作を行う際には、python manage.pyの後ろにコマンドを入力するのですが、option+Rとすると、python manage.pyを省略しつつ、動的に補完を表示するmanage.pyコンソールが現れます。

  • PyCharm画面右上のDatabaseを用いることで、データベースの操作(挿入・検索・更新・削除)を簡単に行うことができます。データベースの作成はこのように行います。

  • Djangoにはあまり関係ありませんが、PyCharm画面右上のSciViewでmatplotlibグラフやpandas表の表示を行うことができます。

おわりに

コーディングを効率化させるPyCharmと、Webアプリ開発を効率化させるDjangoがうまく連携されていて便利だと思いました。次はデータベースやCSRF対策など、もう少し踏み込んだことを調べてみたいです。

追記

年間10,000円の有料版PyCharmでないと、Web開発において制限があるようです。自分は学生ライセンスが有効になっていたのでそのことに気づきませんでした。。
無料版と有料版の機能の違いはこちら、学生ライセンスの申請方法はこちらになります。