とほほ
帰宅してもばたばたしている。なんとかドキュメントをトレイス。何処までイケるのかは分かりませんが、もう少し。
ええと、settings.py の修正部分のみを以下に
DATABASE_ENGINE = 'sqlite3' DATABASE_NAME = '/home/guest/ajaxproject/sqlite3.db' MEDIA_ROOT = os.path.join(os.path.dirname(__file__), 'static') TEMPLATE_DIRS = ( '/home/guest/ajaxproject/templates', ) INSTALLED_APPS = ( 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.admin', 'ajaxproject.ajaxapp', )
これで以下
$ python manage.py startapp ajaxapp Traceback (most recent call last): File "manage.py", line 4, in ? import settings # Assumed to be in the same directory. File "/home/guest/ajaxproject/settings.py", line 38, in ? MEDIA_ROOT = os.path.join(os.path.dirname(__file__), 'static') NameError: name 'os' is not defined $
む。以下を settings.py に
import os
で、以下
$ python manage.py startapp ajaxapp $ ls __init__.py __init__.pyc ajaxapp manage.py settings.py settings.pyc settings.py~ urls.py $ python manage.py syncdb Creating table auth_message Creating table auth_group Creating table auth_user Creating table auth_permission Creating table django_content_type Creating table django_session Creating table django_site Creating table django_admin_log You just installed Django's auth system, which means you don't have any superusers defined. Would you like to create one now? (yes/no): yes Username (Leave blank to use 'guest'): admin E-mail address: yamanetoshi@gmail.com Password: Password (again): Superuser created successfully. Installing index for auth.Message model Installing index for auth.Permission model Installing index for admin.LogEntry model $
で、urls.py を以下にせよ、とある
from django.conf.urls.defaults import * urlpatterns = patterns('', # Example: (r'^', include('ajaxproject.ajaxapp.urls')), # Uncomment this for admin: (r'^admin/', include('django.contrib.admin.urls')), )
で、これを ajaxapp にコピィせよ、とあるな。
$ cp urls.py ajaxapp/
次は
$ mkdir templates
して以下を base.html として保存。
<html lang=en> <head> {% block javascript %} <script type=text/javascript" src="http://127.0.0.1/ajaxproject/protoculous-1.0.2-packed.js"></script> {% endblock %} <title> {% block title %} Pastie Lobby {% endblock %} </title> </head> <body> {% block content %}{% endblock content %} </body> </html>
これで runsever したんですが、駄目。とりあえずこの時点では動作するものではない模様。
つづき
ajaxproject/ajaxapp/urls.py を以下に
from django.conf.urls.defaults import * uropatterns = patterns( 'ajaxproject.ajaxapp.views', (r '^$', 'index'), (r '^refresh/$', 'refresh'), )
で、view 作れ、とある
from django.shortcuts import render_to_response FIB = [0, 1] def get_fib_sequence(): global FIB FIB.append(FIB[-1] + FIB[-2]) return FIB def index(request): return render_to_response("ajaxapp/index.html", { 'fib_sequense' : [0, 1] } ) def refresh(request): fib_sequence = get_fib_sequence() return render_to_response("ajaxapp/fib.html", { 'fib_sequence' : fib_sequence } )
次はテンプレ作れ、とあるな。
{% extends 'ajaxapp/base.html' %} {% block content %} <script type="text/javascript"> function update_fib() { new Ajax.Updater(' fib_div', 'refresh/', (asinchronous:true)>; } </script> <h1> The Fibnacci Sequence </h1> <div id="fib_div" onclick="update_fib();"> {% include 'ajaxapp/fib.html' %} </div> {% endblock %}
上記が ajaxapp/index.html でもう一つ
<ul> {% for entry in fib_sequence %} <li>{{ entry }}</li> <% endfor %} </ul>
が ajaxapp/fib.html で、runserver せぃ、とあるな。
$ python manage.py runserver
どうなるか。
ぐが
エラー。テンプレートの作り方が微妙。ってか違った。urls が微妙らしい。よく見たら
(r '^$', 'index'),
ってなってた。なんでこんな事したかも不明。おそらく原因は無知。
で、直しても駄目。エラーメセジによると
'module' object has no attribute 'urlpatterns'
との事。よく見てみたら ajaxapp/urls.py が
uropatterns = patterns( 'ajaxproject.ajaxapp.views',
ってなってるし (駄目
修正してリトライ。次は
Unclosed tag 'for'. Looking for one of: endfor
との事。Exception Type が TemplateSyntaxError って何だろ。
ぐは
スタックトレイスっぽいナニを見つつ、チュートリアルからコピペ。目視なソレでは変わらないはずだったんスけど、出た。
で、http://localhost:8000/refresh/ にアクセスしたら fib なソレが伸びてゆく。何が悪いのかを控えておこう、と言いつつ何が悪かったのかが分からない不始末。
腹立つので明日最初からリトライしてやれ。