DjangoでTODOリストを作ろう(その1)

Django に興味を持ってくれた職場仲間の為にTODOリストの作り方メモとか。

手練の方からのツッコミとかもお待ちしております!

始める前に今回は以下を使用。(某 endless 氏対応)

ではでは早速プロジェクト作りから。テキトーなディレクトリに移動してプロジェクトを作る。こういう時って名前に一番迷う。が、 test って名前のプロジェクトは通らないから気をつけて。

$ django-admin.py startproject hige

これでカレントディレクトリに hige なプロジェクトが出来てるはず。これからの作業はこの中で行う。中身は多分こんな感じ。

$ cd ./hige
$ ls -al
   204 Jun 19 00:05 ./
   306 Jun 19 00:05 ../
     0 Jun 19 00:05 __init__.py
   546 Jun 19 00:05 manage.py
  2800 Jun 19 00:05 settings.py
   221 Jun 19 00:05 urls.py

で、これからのシェルでの操作は manage.py を使って行う訳ですが、頻繁に使う manage.py にこの段階で実行属性を付けておく。

$ chmod +x manage.py

ここでとりあえず Django についてる開発サーバを立ち上げてみる。

# localhost:8000で立ち上がる。
$ ./manage.py runserver

# localhost:5000にしたい時。
$ ./manage.py runserver 5000

# 192.168.0.100:3000とかならコチラ。
$ ./manage.py runserver 192.168.0.100:3000

ブラウザからアクセスしてみて、 It worked! な画面が拝めたらいい感じ。ってかミスる所無いか。

次に今回使うデータベースを作ってしまう。 Django が文字コードを utf-8 で扱うので、データベースもそれに合わせておく。トラブらないようにね。

$ mysql -e 'CREATE DATABASE hige DEFAULT CHARSET utf8'

必要なら Django からデータベースへアクセスするためのユーザも作っておく。

ココから settings.py の編集に入る。データベースの設定とか、もろもろ基本的な設定を済ませてしまう。以下抜粋。

# ファイルの先頭あたりで追加
import os
BASE_PATH = os.path.abspath(os.path.split(__file__)[0])

# 14行目あたり
DATABASE_ENGINE = 'mysql'
DATABASE_NAME = 'hige'
DATABASE_USER = 'django'
DATABASE_PASSWORD = 'django'

# 26行目あたり
TIME_ZONE = 'Asia/Tokyo'

# 31行目あたり
LANGUAGE_CODE = 'ja_JP'

# 41行目あたり
MEDIA_ROOT = os.path.join(BASE_PATH, 'media')

# 45行目あたり
MEDIA_URL = '/site_media'

# 71行目あたり
TEMPLATE_DIRS = (
    os.path.join(BASE_PATH, 'templates'),
)

# 78行目あたり
# django.contrib.adminを追加。
INSTALLED_APPS = (
    ...
    'django.contrib.admin',
)

ココでちょいと説明。 BASE_PATH にはこのファイル( settings.py )までの絶対パスが入ってる。で、 MEDIA_ROOT , TEMPLATE_DIRS にはそれぞれプロジェクト直下の media なディレクトリ、 templates なディレクトリを指定してるっす。なので先にコレを作っておく。

$ mkdir media
$ mkdir templates

これで settings.py はとりあえず一段落。なので、 syncdb を叩いてデータベースへ反映する。

$ ./manage.py syncdb
Creating table auth_message
Creating table auth_group
Creating table auth_user
Creating table auth_permission
Creating table django_admin_log
Creating table django_content_type
Creating table django_session
Creating table django_site
...

ズラズラと文字が流れる途中でユーザ名とかメールアドレスとかパスワードとか聞かれるけど素直に入力。ココで設定したユーザとパスワードで管理画面にログインする事になる。

管理画面を拝むために、 urls.py のコメントアウトを外してURLとの紐付けを行う。

from django.conf.urls.defaults import *

# adminの部分のコメントアウトを外す。
urlpatterns = patterns('',
    ...
    (r'^admin/', include('django.contrib.admin.urls')),
)

これで開発サーバを起動してブラウザから /admin/ にアクセスすれば、管理画面のログイン画面が出てくるはず。 syncdb したときに入力したユーザとパスワードで入る事が出来る。

以下ココまでのまとめ?

  • startprojecttest 以外で。
  • manage.py には実行権限を立てると楽出来る。
  • Djangoutf-8 で話す。
  • 最初に syncdb したときのユーザ、パスワードは忘れるな。
  • 管理画面は最初からウハウハコンチクショー!

次はモデル作ったりとかかな?ひとまずココまで。

何にもしてないのに意外に時間かかったなぁ。

Posted at: 
2007/06/19 01:43:19
4 Comments
1 TrackBack
Tags: 
Django
Python
Trackback: 
http://humming.via-kitchen.com/2007/06/19/todo-list-by-using-django-part1/trackback/

TrackBacks

[Django] 復習 - mitszoの日記

しばらく触れてなかったし、すばらしくわかりやすくまとめられているので復習にと見ながら真似ながら作ってみてます。以前作った(一応自分用に使用中)の「やったことリスト(時間記録用)」に todo をひっつけようと画策しているので参考にさせていただきいてます。 newfo

Created at: 
2007/07/18 01:18:00

Comments

t-matsuda

俺もDjangoやろうかな。来年までにはw

Created at: 
2007/06/21 15:10:12

nobu

来年ってw
でも、5年じゃなくなりましたな。

Created at: 
2007/06/21 15:41:09

uemura

こんにちは
非常によいチュートリアルなので私のブログにて紹介させていただきました。

http://www.ueblog.org/blog/entry/django/

今後ともよろしくお願いします。

Created at: 
2007/07/05 16:03:43

nobu

紹介して頂いてありがとうございます!

乱雑な文章ではありますが、これからDjangoを始めようとされている方の役に少しでも立てばと思います。

こちらこそ今後ともよろしくお願いします。

Created at: 
2007/07/05 21:15:07

Add Comment

Add Comment