こちらの続きです。
http://yamayoshi.blogspot.jp/2016/05/gaep-django18-djangae.html
1.概要
・モデル(home/models.py)の定義
・URLディスパッチャーの設定(mysite/urls.py と home/urls.py)
・ビュー(home/views.py)を書く
・データを格納
・adminページでデータを確認
2.コードを書く
2-1.モデルの定義
こらを参考に。
https://docs.djangoproject.com/en/1.8/topics/db/models/
$ cd ~/gae/project
$ nano home/models.py
--
# encoding: UTF-8
from django.db import models
from django.utils.http import urlquote
class Link(models.Model):
url = models.CharField(max_length=200, primary_key=True)
title = models.CharField(max_length=200)
dt = models.DateTimeField(auto_now=True)
def get_absolute_url(self):
return "/url/?" + self.url
class Meta:
ordering = ['-dt']
--
設定ファイルにモデル(の入っている場所)を追加
$ nano mysite/settings.py
--
INSTALLED_APPS = (
〜
'home', #追加
)
--
adminページでモデルを読み込めるように。
$ nano home/admin.py
--
# encoding: UTF-8
from django.contrib import admin
from .models import *
class LinkAdmin(admin.ModelAdmin):
list_display = ('url', 'title', 'dt')
admin.site.register(Link, LinkAdmin)
--
2-2.URLディスパッチャーの設定
こちらを参考に。
https://docs.djangoproject.com/en/1.8/topics/http/urls/
まず、メインのディスパッチャー。
$ nano mysite/urls.py
--
# encoding: UTF-8
from django.conf.urls import include, url
from django.contrib import admin
from home import views
urlpatterns = [
url(r'^', include('home.urls')),
url(r'^admin/', include(admin.site.urls)),
]
--
続いて、アプリケーションのディスパッチャー。
$ nano home/urls.py
--
# encoding: UTF-8
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^test/', views.test),
]
--
2-3.ビューを書く
こちらを参考に。
https://docs.djangoproject.com/en/1.8/topics/http/views/
$ nano home/views.py
--
# encoding: UTF-8
from django.http import *
from .models import *
from datetime import datetime
def test(request):
for i in range(1, 100):
res = datetime.now()
link = Link(url=res, title=i)
link.save()
return HttpResponse(res)
--
3.データを格納
開発用サーバを起動
$ python ../google_appengine/dev_appserver.py ./
ブラウザで、testページにアクセス。しばらく待つ。
=> http://localhost:8080/test/
データの格納が完了すると、こんな表示が出ます。
2016-05-06 01:07:42.358893
4.データを確認
ブラウザで、adminページにアクセスして、データを確認。
=> http://localhost:8080/admin/
HOME -> Links に、いっぱい入ってます。
5.所感
とりあえず、Django のモデルで、データの格納が出来ました。
裏で NDB が動いてるので、なんらかの制限はありそうですが、普通に使えそうです。
次は、いよいよ、Sitemaps に挑戦!!
実は、これをやりたかったんだよね。
0 件のコメント:
コメントを投稿