スポンサーリンク

DjangoGirlsTutorialをやってみる(6)ORM(Object-relational mapping)

前回は、viewを表示するところまで行った。

http://twosquirrel.mints.ne.jp/?p=9556

今回は、
https://djangogirlsjapan.gitbooks.io/workshop_tutorialjp/content/django_orm/
をtryしてみる。

(環境)
Windows8.1
Anaconda4.1.1 (python 3.5.2)
(下準備)
cmd.exeを「管理者で実行」
cd c:/py/djangogirls/myproject
activate root

(1)Postオブジェクトの表示

python manage.py shell

>>> Post.objects.all()

>>> from blog.models import Post
>>> Post.objects.all()

>>> Post.objects.create(author=me, title='Sample title', text='Test')
>>> from django.contrib.auth.models import User
>>> User.objects.all()
>>> me = User.objects.get(username='admin')
>>> Post.objects.create(author = me, title = 'Sample title', text = 'Test')

(2)Filter objects と、Ordering objects

https://djangogirlsjapan.gitbooks.io/workshop_tutorialjp/content/django_orm/

に記載の通りに入力。

次は、

https://djangogirlsjapan.gitbooks.io/workshop_tutorialjp/content/dynamic_data_in_templates/

にしたがってやっていく。

(3)blog/views.py を変更。

views.py は、Railsでいうところのcontroller.rb なのだと思われる。

from django.shortcuts import render from django.utils import timezone from .models import Post def post_list(request): posts = Post.objects.filter(published_date__lte=timezone.now()).order_by('published_date') return render(request, 'blog/post_list.html', {'posts': posts})

(変更前)

(変更後)

(4)blog/templates/blog/post_list.html を変更。

Railsでいうところの、view/xxx.html.erb (railsでいうView)だと思われる。

<div> <h1><a href="/">Django Girls Blog</a></h1> </div> {% for post in posts %} <div> <h1><a href="">{{ post.title }}</a></h1> <p>{{ post.text|linebreaks }}</p>

<p>published: {{ post.published_date }}</p> </div> {% endfor %}

(変更前)

(変更後)

python manage.py runserver

127.0.0.1:8000

(5)Herokuにデプロイ

git add -A .
git commit -m “Added views to create/edit blog post inside the site."
git push heroku master

Herokuのアドレスをブラウザで開くと、真っ白。

これは、Adminから、Postを投稿して、published dateを本日以前に設定する必要がある。

/admin からログインして、Postを追加する。

一応、OK.

できれば、ソースをBitBucket管理にしたいが、、、SSHキーがうんたらでまだできていない。いずれできるようにしたい。

(参考)

Railsチュートリアル 1.4.3 Bitbucket

http://railstutorial.jp/chapters/beginning?version=4.2#sec-bitbucket

Bitbucketにアップロードと、Herokuにデプロイ。(2回目以降)

http://twosquirrel.mints.ne.jp/?p=4485

Django,Python

Posted by twosquirrel