管理画面は自動生成できるけど、フロントエンドは自分で作る。
- urls.py の編集
- views.py の編集
- テンプレートファイルの作成
3つの手順(単純なケースでは views.py の編集は不要だったりする)で作業する
urls.py
urlpatterns に patterns のインスタンスをセット、さらに追加していく。+=でpatternsを追加できる。
patterns は、さらに url のリストを含んでたりする。
基本は正規表現のURLマッチングと、呼び出す viewメソッドのセットで url に記述する。
プロジェクトと同名のディレクトリには既に urls.py があるので、それがいい例になる。
from django.conf.urls import patterns, include, url
from django.views.generic import TemplateView
# Uncomment the next two lines to enable the admin:
# from django.contrib import admin
# admin.autodiscover()
urlpatterns = patterns('',
url(r'^$', TemplateView.as_view(template_name="index.html"), name='home'),
# Examples:
# url(r'^$', 'djangotest.views.home', name='home'),
# url(r'^djangotest/', include('djangotest.foo.urls')),
# Uncomment the admin/doc line below to enable admin documentation:
# url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
# Uncomment the next line to enable the admin:
# url(r'^admin/', include(admin.site.urls)),
)
include では、既にマッチした部分は 被includeファイルには渡されない。上のExamplesにある django.contrib.admindocs.urls の中身を見ると、/admin/doc/にマッチした場合に include されるファイルだけど、
from django.conf.urls import patterns, url
from django.contrib.admindocs import views
urlpatterns = patterns('',
url('^$',
views.doc_index,
name='django-admindocs-docroot'
),
url('^bookmarklets/$',
views.bookmarklets,
name='django-admindocs-bookmarklets'
),
views.py
ビューとは言いつつ、MVCモデルで言うところのCにあたる。
メソッド形式で定義し、パラメータに必ずHttpRequestのオブジェクトを受け取る。
いくつか例を挙げておく
def index(request)
return HttpResponce("index page")
def hello(request, urlparam)
return HttpResponce("Hello, World. %s" % urlparam)
def show_template(request)
return render_to_response(
"template_file_path.html",
{'param':'value' },
RequestContext(request))
def redirect_to_root(request)
return redirect('/')
def redirect_by_viewname(request)
return redirect('thispackage.views.hello')
def redirect_with_urlparam(request, *args)
return redirect(('thispackage.views.hello',args=[args[0]]) #
こいつらにアクセスしようと思ったら、urlsはこんな感じに書く
import views
# ...
url(r'^sample/$', views.index),
url(r'^sample/(?<urlparam>.*/)$', views.hello),
url(r'^sample/template/$, views.show_tamplate),
url(r'^sample/root/$', views.redirect_to_root),
url(r'^sample/view/$', views.redirect_by_viewname),
url(r'^sample/urlparam/(.*)/$', views.redirect_with_urlparam)
#...
ちゃんと試してないので、エラーでたらごめんなさい。
テンプレートファイルの作成
テンプレートファイルはすごく簡単なので、メモ残しておくまでもない。
雛形をつくっておいて、使いまわせば万事解決。
あとで作った雛形ファイルを上げておこうと思う。
CSSとJSを一切つくってないので、レイアウト崩れまくりだけども
アップロードしておいたのはある。
最終更新:2012年11月08日 13:34