Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

普段Djangoを使っている人間がruby on railsを勉強してみた話

1,802 views

Published on

普段Djangoを使っている人間がruby on railsを勉強してみた話

Published in: Internet
  • Be the first to comment

普段Djangoを使っている人間がruby on railsを勉強してみた話

  1. 1. 普段Djangoを使っている人間 がRuby on Railsを勉強してみ た話 長野Rubyの会 #1 2017.12.2 於 GEEKLAB.NAGANO
  2. 2. 自己紹介 ● にしざわこういち ● プログラマー ● @koty ● ギークラ某長野 管理人見習い
  3. 3. プログラミング言語歴 VisualBasic.NET ・・・10年 C# ・・・10年 Java ・・・3年 Python ・・・3年 TypeScript ・・・3ヶ月 Ruby ・・・3日
  4. 4. Ruby on Rails vs Django(ヂャンゴ) 雑に比較しました。 マサカリを投げないでください。
  5. 5. 環境構築 https://github.com/rails/rails-dev-box https://qiita.com/kaki_k/items/511611cada c1d0c69c54
  6. 6. 用語の比較 Model-View-Controller Model-Temlate-View
  7. 7. Model class Title < ApplicationRecord def title_display '[' + self.name + ']' end end from django.db import models class Title(models.Model): name = models.TextField() sales_date = models.DateField() def title_display(self): return '[' + self.name + ']'
  8. 8. Controller(View) class BooklistController < ApplicationController def index @msg = 'djangoはいいぞ。' @titles = Title.all end def detail @msg = 'hello' @title = Title.find(params[:id]) end end from app.models import Title def index(request): context = {'msg' : 'djangoはいいぞ。', 'titles' : Title.objects.all()} return render_to_response('booklist/index.html', context) def details(request, id): context = {'msg' : 'hello’', 'title' : Title.objects.get(id=id)} return render_to_response('booklist/detail.html', context)
  9. 9. View(Template) <h1>Hello</h1> <p><%= @msg %></p> <p>現在登録されている本のタイトルは次のとおりです。</p> <p> <% @titles.each do |title| %> <a href='/booklist/<%= title.id %>'>タイトル <%= title.title_display %>, [発売日] <%= title.sales_date %></a><br /> <% end %> </p> <html><h1>Hello</h1> <p>{{ msg }}</p> <p>現在登録されている本のタイトルは次のとおりです。</p> <p> {% for titlei in titles %} <a href='/booklist/{{ title.id }}'>タイトル {{ title.title_display }}, [発売日] {{ title.sales_date }}</a><br /> {% endfor %} </p></html>
  10. 10. ルーティング Rails.application.routes.draw do get 'booklist' => 'booklist#index' get 'booklist/:id' => 'booklist#detail' end from views import booklist urlpatterns = [ url(r'^booklist$', booklist.index), url(r'^booklist/(?P<id>[0-9]+)$', booklist.detail), ]
  11. 11. マイグレーション > rails generate model title 生成されたmigrationファイルにフィールドを追加 > rake db:migrate modelの定義を作成 > ./manage.py makemigrations > ./manage.py migrate
  12. 12. その他 スキャフォールド  →使うもんなんでしょうか? Django Admin Djangoが既定で提供する、modelと一対一対応するCRUD画面。割と使う。
  13. 13. 所感 ● railsの方が記述量が少ない分、暗黙のルールが多い ● htmlはdjangoの方が見やすそう ● migrationはdjangoの方が便利 ○ railsだとmigrationファイルとモデルに定義が分散する?? ● ルーティングはrailsの方がシンプル ○ Djangoも2系から同様のシンプルな記述ができる予定
  14. 14. 残課題 ● アプリケーションサーバー ● herokuへのデプロイ ● REST API ● フロントエンド関係のファイルの扱い ● ・・・・・ 第二弾にご期待下さい!?
  15. 15. Wantedlyでの検索結果 rails で検索 →3,678件 djangoで検索 → 463件
  16. 16. 結論 Djangoをやりましょう

×