SlideShare ist ein Scribd-Unternehmen logo
1 von 48
Downloaden Sie, um offline zu lesen
Useful Django1.4
                Django & Pyramid Con 2012
                        @hirokiky




12年9月18日火曜日
Useful Django1.4

    • About me (2m)
    • About Django (19m)
    • Useful things of Django > 1.0 (19m)

                              Speaker: @hirokiky
12年9月18日火曜日
Useful Django1.4

      • About me
      • About Django
      • Useful things of Django > 1.0

                               Speaker: @hirokiky
12年9月18日火曜日
About me

              • @hirokiky (Hiroki KIYOHARA)
              • Weekend Programmer
              • Admin of djangoproject.jp


                         Speaker: @hirokiky
12年9月18日火曜日
djangoproject.jp




                                          http://djangoproject.jp/
                   https://github.com/django-ja/djangoproject.jp/



                                     Speaker: @hirokiky
12年9月18日火曜日
Useful Django1.4

    • About me
    • About Django
    • Useful things of Django > 1.0

                               Speaker: @hirokiky
12年9月18日火曜日
Django is a Open Source Web framework
             written by Python.




                      Speaker: @hirokiky
12年9月18日火曜日
DjangoSites

              • Disqus
              • Instagram
              • Mozilla
              • bitbucket

                            Speaker: @hirokiky
12年9月18日火曜日
WebServer              request


              Template              URL Dispatcher



      response             View

                          Model

                         DataBase

                                    Speaker: @hirokiky
12年9月18日火曜日
Philosophies
          • Loose coupling
          • Less code
          • Quick development
          • Don t repeat yourself (DRY)
          • Explicit is better than implict
          • Consistency
              https://docs.djangoproject.com/en/1.4/misc/design-philosophies/

                                                Speaker: @hirokiky
12年9月18日火曜日
Killer features


   • Automatically-generated admin site
   • Form library
   • Generic views
                           Speaker: @hirokiky
12年9月18日火曜日
Admin site




    • Automatically-generated
    • Easy to customize

                         Speaker: @hirokiky
12年9月18日火曜日
Demo: Admin (15m)


   • startproject, create models, run admin site(10m)
   • Introduction of django-blog-zinnia (5m)


                               Speaker: @hirokiky
12年9月18日火曜日
Read Docs
      and some codes
 If you want to learn more

               Speaker: @hirokiky
12年9月18日火曜日
Useful Django1.4

    • About me
    • About Django
    • Useful things of Django > 1.0

                               Speaker: @hirokiky
12年9月18日火曜日
Django > 1.0

        • project template
        •     <del>Class Based View</del> <!-- Because of time constraints -->




                                                    Speaker: @hirokiky
12年9月18日火曜日
project template

   • Django>=1.4
   • template of project
              https://docs.djangoproject.com/en/dev/releases/1.4/#custom-project-and-app-templates




                                                        Speaker: @hirokiky
12年9月18日火曜日
Project template provide


      • easy deploy to a specific environment
      • archiving some best practices

                              Speaker: @hirokiky
12年9月18日火曜日
Boring tasks after startproject

 • Judging environments (DEBUG, True or False.
 • A application should put in project/apps. (not default,
      but good know-how

 • Writing dependences.
 • Dealing informations we want to write in settings
      (SECRET_KEY, PASSWORD

                                 Speaker: @hirokiky
12年9月18日火曜日
Solving all of these
               by templating



                          Speaker: @hirokiky
12年9月18日火曜日
How to use
              project template
  django-admin.py startproject --template=/path/to/template myproject




         --template=/path/to/template

                                                       also URL


                                            Speaker: @hirokiky
12年9月18日火曜日
template
       ├──	
  fabfile.py
       ├──	
  gunicorn.py.ini
       ├──	
  manage.py
       ├──	
  Procfile
       ├──	
  reqs
       │	
  	
  	
  ├──	
  common.txt                 template is like this
       │	
  	
  	
  ├──	
  dev.txt
       │	
  	
  	
  └──	
  prod.txt
       ├──	
  requirements.txt                           (A directory)
       ├──	
  project_name
       │	
  	
  	
  ├──	
  apps
       │	
  	
  	
  │	
  	
  	
  └──	
  __init__.py
       │	
  	
  	
  ├──	
  __init__.py
       │	
  	
  	
  ├──	
  libs
       │	
  	
  	
  │	
  	
  	
  └──	
  __init__.py
       │	
  	
  	
  ├──	
  settings
       │	
  	
  	
  │	
  	
  	
  ├──	
  common.py
       │	
  	
  	
  │	
  	
  	
  ├──	
  dev.py
       │	
  	
  	
  │	
  	
  	
  ├──	
  __init__.py
       │	
  	
  	
  │	
  	
  	
  └──	
  prod.py
       │	
  	
  	
  ├──	
  templates
       │	
  	
  	
  │	
  	
  	
  ├──	
  404.html
       │	
  	
  	
  │	
  	
  	
  └──	
  500.html
       │	
  	
  	
  └──	
  urls.py
       └──	
  wsgi.py
                                                          Speaker: @hirokiky
12年9月18日火曜日
template
       ├──	
  fabfile.py
       ├──	
  gunicorn.py.ini
       ├──	
  manage.py
       ├──	
  Procfile
       ├──	
  reqs
       │	
  	
  	
  ├──	
  common.txt                 template is like this
       │	
  	
  	
  ├──	
  dev.txt
       │	
  	
  	
  └──	
  prod.txt
       ├──	
  requirements.txt
       ├──	
  project_name
       │	
  	
  	
  ├──	
  apps
       │	
  	
  	
  │	
  	
  	
  └──	
  __init__.py
                                                       This name will be
       │	
  	
  	
  ├──	
  __init__.py
       │	
  	
  	
  ├──	
  libs
       │	
  	
  	
  │	
  	
  	
  └──	
  __init__.py
                                                         replaced with
       │	
  	
  	
  ├──	
  settings
       │	
  	
  	
  │	
  	
  	
  ├──	
  common.py       project s name
       │	
  	
  	
  │	
  	
  	
  ├──	
  dev.py
       │	
  	
  	
  │	
  	
  	
  ├──	
  __init__.py
       │	
  	
  	
  │	
  	
  	
  └──	
  prod.py
       │	
  	
  	
  ├──	
  templates
       │	
  	
  	
  │	
  	
  	
  ├──	
  404.html
       │	
  	
  	
  │	
  	
  	
  └──	
  500.html
       │	
  	
  	
  └──	
  urls.py
       └──	
  wsgi.py
                                                          Speaker: @hirokiky
12年9月18日火曜日
Also .py files
       if	
  __name__	
  ==	
  "__main__":
       	
  	
  	
  	
  os.environ.setdefault("DJANGO_SETTINGS_MODULE",	
  "{{	
  project_name	
  }}.settings.dev")

       	
  	
  	
  	
  from	
  django.core.management	
  import	
  execute_from_command_line

       	
  	
  	
  	
  execute_from_command_line(sys.argv)



              • project_name
              • project_directory
              • secret_key
              • Also another files specified by option
                                                                            Speaker: @hirokiky
12年9月18日火曜日
In essence
You can use own project template,
instead of django/conf/project_template




                       Speaker: @hirokiky
12年9月18日火曜日
Example: django-skel

   • heroku + S3 platform
   • Filled with best practices that rdegges have
        learned for four years.


                 https://github.com/rdegges/django-skel



                                    Speaker: @hirokiky
12年9月18日火曜日
Workflow


                  Speaker: @hirokiky
12年9月18日火曜日
Before developing

              • startproject --template ...
              • git init
              • pip install -r reqs/dev.txt
              • sync, migrate, runserver

                                       Speaker: @hirokiky
12年9月18日火曜日
Hack some apps
               (not projects)

                       Speaker: @hirokiky
12年9月18日火曜日
Before deploying

              • fab	
  bootstrap

              • heroku	
  config:add	
  ...

              • heroku	
  scale	
  ...
              • collectstatic	
  &&	
  compress

                                          Speaker: @hirokiky
12年9月18日火曜日
Good joooooo( ́ `)oooooob!!!!




                           Speaker: @hirokiky
12年9月18日火曜日
Let s learn best practices
              from django-skel


          • Judging environments
          • apps directory
                            Speaker: @hirokiky
12年9月18日火曜日
django-­‐skel
              ├──	
  fabfile.py
              ├──	
  gunicorn.py.ini
              ├──	
  manage.py
              ├──	
  Procfile
              ├──	
  reqs
              │	
  	
  	
  ├──	
  common.txt
              │	
  	
  	
  ├──	
  dev.txt
              │	
  	
  	
  └──	
  prod.txt
              ├──	
  requirements.txt
                                                                 Note:
              ├──	
  project_name
              │	
  	
  	
  ├──	
  apps
              │	
  	
  	
  │	
  	
  	
  └──	
  __init__.py
              │	
  	
  	
  ├──	
  __init__.py
                                                             django-skel s
              │	
  	
  	
  ├──	
  libs
              │	
  	
  	
  │	
  	
  	
  └──	
  __init__.py
              │	
  	
  	
  ├──	
  settings                      layout
              │	
  	
  	
  │	
  	
  	
  ├──	
  common.py
              │	
  	
  	
  │	
  	
  	
  ├──	
  dev.py
              │	
  	
  	
  │	
  	
  	
  ├──	
  __init__.py
              │	
  	
  	
  │	
  	
  	
  └──	
  prod.py
              │	
  	
  	
  ├──	
  templates
              │	
  	
  	
  │	
  	
  	
  ├──	
  404.html
              │	
  	
  	
  │	
  	
  	
  └──	
  500.html
              │	
  	
  	
  └──	
  urls.py
              └──	
  wsgi.py
                                                               Speaker: @hirokiky
12年9月18日火曜日
Judging environments


  • Judging environments automaticaly.
  • Don t do hardcoding (settings.DEBUG = True


                            Speaker: @hirokiky
12年9月18日火曜日
On django-skel
                         ├──	
  settings
                         │	
  	
  	
  │	
  	
  	
  ├──	
  __init__.py
                         │	
  	
  	
  │	
  	
  	
  ├──	
  common.py
                         │	
  	
  	
  │	
  	
  	
  ├──	
  dev.py
                         │	
  	
  	
  │	
  	
  	
  └──	
  prod.py

       • Only	
  development	
  setting	
  will	
  put	
  in	
  dev.py
       • settings	
  for	
  production	
  =>	
  prod.py
       • Common	
  settings	
  =>	
  common.py
       •      heroku	
  config:add	
  
              DJANGO_SETTINGS_MODULE={{	
  project_name	
  }}.settings.prod

                                                           Speaker: @hirokiky
12年9月18日火曜日
apps directory


              • Directory for applications
              • For avoiding import collision


                                    Speaker: @hirokiky
12年9月18日火曜日
django-­‐skel
   ├──	
  fabfile.py
   ├──	
  gunicorn.py.ini
   ├──	
  manage.py
   ├──	
  Procfile
   ├──	
  reqs
   │	
  	
  	
  ├──	
  common.txt
   │	
  	
  	
  ├──	
  dev.txt
   │	
  	
  	
  └──	
  prod.txt
   ├──	
  requirements.txt
   ├──	
  project_name
   │	
  	
  	
  ├──	
  apps                         Here
   │	
  	
  	
  │	
  	
  	
  └──	
  __init__.py
   │	
  	
  	
  ├──	
  __init__.py
   │	
  	
  	
  ├──	
  libs
   │	
  	
  	
  │	
  	
  	
  └──	
  __init__.py
   │	
  	
  	
  ├──	
  settings
   │	
  	
  	
  │	
  	
  	
  ├──	
  common.py
   │	
  	
  	
  │	
  	
  	
  ├──	
  dev.py
   │	
  	
  	
  │	
  	
  	
  ├──	
  __init__.py
   │	
  	
  	
  │	
  	
  	
  └──	
  prod.py
   │	
  	
  	
  ├──	
  templates
   │	
  	
  	
  │	
  	
  	
  ├──	
  404.html
   │	
  	
  	
  │	
  	
  	
  └──	
  500.html
   │	
  	
  	
  └──	
  urls.py
   └──	
  wsgi.py
                                                  Speaker: @hirokiky
12年9月18日火曜日
.	
  #	
  here,	
  path
  |-­‐-­‐	
  aggregator
  |	
  	
  	
  |-­‐-­‐	
  __init__.py
  |	
  	
  	
  |-­‐-­‐	
  blog.py
                                              If no apps/
  |	
  	
  	
  |-­‐-­‐	
  models.py
  |	
  	
  	
  |-­‐-­‐	
  tests.py
  |	
  	
  	
  `-­‐-­‐	
  views.py
  |-­‐-­‐	
  blog

                                           • Ex: In aggregator.views
  |	
  	
  	
  |-­‐-­‐	
  __init__.py
  |	
  	
  	
  |-­‐-­‐	
  models.py
  |	
  	
  	
  |-­‐-­‐	
  tests.py
  |	
  	
  	
  `-­‐-­‐	
  views.py
  |-­‐-­‐	
  manage.py
  `-­‐-­‐	
  myprj
                                           • from blog.models import Entry
                                           • ImportError
  	
  	
  	
  	
  |-­‐-­‐	
  __init__.py
  	
  	
  	
  	
  |-­‐-­‐	
  settings.py
  	
  	
  	
  	
  |-­‐-­‐	
  urls.py
  	
  	
  	
  	
  `-­‐-­‐	
  wsgi.py



                                                      Speaker: @hirokiky
12年9月18日火曜日
.	
  #	
  here,	
  path
  |-­‐-­‐	
  apps
  |	
  	
  	
  |-­‐-­‐	
  __init__.py
  |	
  	
  	
  |-­‐-­‐	
  aggregator
  |	
  	
  	
  |	
  	
  	
  |-­‐-­‐	
  __init__.py
                                                            Then apps/
  |	
  	
  	
  |	
  	
  	
  |-­‐-­‐	
  blog.py
  |	
  	
  	
  |	
  	
  	
  |-­‐-­‐	
  models.py
  |	
  	
  	
  |	
  	
  	
  |-­‐-­‐	
  tests.py
  |	
  	
  	
  |	
  	
  	
  `-­‐-­‐	
  views.py
  |	
  	
  	
  `-­‐-­‐	
  blog
  |	
  	
  	
  	
  	
  	
  	
  |-­‐-­‐	
  __init__.py
  |	
  	
  	
  	
  	
  	
  	
  |-­‐-­‐	
  models.py
  |	
  	
  	
  	
  	
  	
  	
  |-­‐-­‐	
  tests.py
  |	
  	
  	
  	
  	
  	
  	
  `-­‐-­‐	
  views.py
  |-­‐-­‐	
  manage.py
                                                        •   from apps.blog.model import Entry
  `-­‐-­‐	
  myprj
  	
  	
  	
  	
  |-­‐-­‐	
  __init__.py
  	
  	
  	
  	
  |-­‐-­‐	
  settings.py
  	
  	
  	
  	
  |-­‐-­‐	
  urls.py
  	
  	
  	
  	
  `-­‐-­‐	
  wsgi.py


                                                                     Speaker: @hirokiky
12年9月18日火曜日
Project template provide


      • easy deploy to a specific environment
      • archiving some best practices

                              Speaker: @hirokiky
12年9月18日火曜日
Luke of Django

              • Deploy project avoiding HELL
              • Learn best practices through reading
                good project templates




                                    Speaker: @hirokiky
12年9月18日火曜日
Yoda of Django

          • Without remembering best practices
              and adapting to new project to these

          • Create Django s default standards in
              the form of project template



                                   Speaker: @hirokiky
12年9月18日火曜日
Killer Feature of Django1.4
                  is not only {% elif %}




                               Speaker: @hirokiky
12年9月18日火曜日
Announce

  • I held DjangoSprint
  • 2012 September 17
  • It don t force you what to do.
  • http://2012.pycon.jp/en/program/sprints.html

                            Speaker: @hirokiky
12年9月18日火曜日
Thank you


                    Speaker: @hirokiky
12年9月18日火曜日
Any questions?


                      Speaker: @hirokiky
12年9月18日火曜日
References

              • djangoproject.jp
              • djangoproject.com
              • django-blog-zinnia
              • django-skel

                                     Speaker: @hirokiky
12年9月18日火曜日
django-docs-ja


• We are translating Django1.4 documents to Japanese

                https://github.com/django-docs-ja/django-docs-ja




                                     Speaker: @hirokiky
12年9月18日火曜日

Weitere ähnliche Inhalte

Was ist angesagt?

FINAL FANTASY Record Keeperを支えたGolang
FINAL FANTASY Record Keeperを支えたGolangFINAL FANTASY Record Keeperを支えたGolang
FINAL FANTASY Record Keeperを支えたGolangYoshiki Shibukawa
 
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2tamtam180
 
ヒカルのGo 資料 Webアプリケーションの作り方
ヒカルのGo 資料 Webアプリケーションの作り方ヒカルのGo 資料 Webアプリケーションの作り方
ヒカルのGo 資料 Webアプリケーションの作り方Yosuke Furukawa
 
今日から始める Go言語 と appengine
今日から始める Go言語 と appengine今日から始める Go言語 と appengine
今日から始める Go言語 と appenginea know
 
"Continuous Publication" with Python: Another Approach
"Continuous Publication" with Python: Another Approach"Continuous Publication" with Python: Another Approach
"Continuous Publication" with Python: Another ApproachDaisuke Miyakawa
 
Go MobileでAndroidアプリ開発
Go MobileでAndroidアプリ開発Go MobileでAndroidアプリ開発
Go MobileでAndroidアプリ開発Takuya Ueda
 
minneで学ぶクラウド脳
minneで学ぶクラウド脳minneで学ぶクラウド脳
minneで学ぶクラウド脳Uchio Kondo
 
10分でわかるPythonの開発環境
10分でわかるPythonの開発環境10分でわかるPythonの開発環境
10分でわかるPythonの開発環境Hisao Soyama
 
今年使ってみて良かった、Pythonモジュール、パッケージ、ツール
今年使ってみて良かった、Pythonモジュール、パッケージ、ツール今年使ってみて良かった、Pythonモジュール、パッケージ、ツール
今年使ってみて良かった、Pythonモジュール、パッケージ、ツールaoshiman
 
Pelicanによる www.python.jpの構築
Pelicanによる www.python.jpの構築Pelicanによる www.python.jpの構築
Pelicanによる www.python.jpの構築Atsuo Ishimoto
 
新人Git/Github研修公開用スライド(その2)
新人Git/Github研修公開用スライド(その2)新人Git/Github研修公開用スライド(その2)
新人Git/Github研修公開用スライド(その2)pupupopo88
 
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い sasezaki
 
Goでかんたんソースコードの静的解析
Goでかんたんソースコードの静的解析Goでかんたんソースコードの静的解析
Goでかんたんソースコードの静的解析Takuya Ueda
 
Apacheの展望とmod_perlの超絶技巧 #yapcasia
Apacheの展望とmod_perlの超絶技巧 #yapcasiaApacheの展望とmod_perlの超絶技巧 #yapcasia
Apacheの展望とmod_perlの超絶技巧 #yapcasia鉄次 尾形
 
Pelican の紹介 / World Plone Day 2017 Tokyo
Pelican の紹介 / World Plone Day 2017 TokyoPelican の紹介 / World Plone Day 2017 Tokyo
Pelican の紹介 / World Plone Day 2017 TokyoKei IWASAKI
 
PySide/QtWebkitで楽々 slideshare Hack
PySide/QtWebkitで楽々 slideshare HackPySide/QtWebkitで楽々 slideshare Hack
PySide/QtWebkitで楽々 slideshare HackKazushige TAKEUCHI
 
Python charity talk in japan fastAPI introduction
Python charity talk in japan fastAPI introductionPython charity talk in japan fastAPI introduction
Python charity talk in japan fastAPI introductionssuserc75dc7
 
Python におけるドメイン駆動設計(戦術面)の勘どころ
Python におけるドメイン駆動設計(戦術面)の勘どころPython におけるドメイン駆動設計(戦術面)の勘どころ
Python におけるドメイン駆動設計(戦術面)の勘どころJunya Hayashi
 

Was ist angesagt? (20)

FINAL FANTASY Record Keeperを支えたGolang
FINAL FANTASY Record Keeperを支えたGolangFINAL FANTASY Record Keeperを支えたGolang
FINAL FANTASY Record Keeperを支えたGolang
 
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
Getting Started GraalVM / GraalVM超入門 #jjug_ccc #ccc_c2
 
ヒカルのGo 資料 Webアプリケーションの作り方
ヒカルのGo 資料 Webアプリケーションの作り方ヒカルのGo 資料 Webアプリケーションの作り方
ヒカルのGo 資料 Webアプリケーションの作り方
 
今日から始める Go言語 と appengine
今日から始める Go言語 と appengine今日から始める Go言語 と appengine
今日から始める Go言語 と appengine
 
"Continuous Publication" with Python: Another Approach
"Continuous Publication" with Python: Another Approach"Continuous Publication" with Python: Another Approach
"Continuous Publication" with Python: Another Approach
 
Go MobileでAndroidアプリ開発
Go MobileでAndroidアプリ開発Go MobileでAndroidアプリ開発
Go MobileでAndroidアプリ開発
 
minneで学ぶクラウド脳
minneで学ぶクラウド脳minneで学ぶクラウド脳
minneで学ぶクラウド脳
 
10分でわかるPythonの開発環境
10分でわかるPythonの開発環境10分でわかるPythonの開発環境
10分でわかるPythonの開発環境
 
今年使ってみて良かった、Pythonモジュール、パッケージ、ツール
今年使ってみて良かった、Pythonモジュール、パッケージ、ツール今年使ってみて良かった、Pythonモジュール、パッケージ、ツール
今年使ってみて良かった、Pythonモジュール、パッケージ、ツール
 
Pelicanによる www.python.jpの構築
Pelicanによる www.python.jpの構築Pelicanによる www.python.jpの構築
Pelicanによる www.python.jpの構築
 
新人Git/Github研修公開用スライド(その2)
新人Git/Github研修公開用スライド(その2)新人Git/Github研修公開用スライド(その2)
新人Git/Github研修公開用スライド(その2)
 
GoでMinecraftっぽいの作る
GoでMinecraftっぽいの作るGoでMinecraftっぽいの作る
GoでMinecraftっぽいの作る
 
ECMAScript没proposal追悼式
ECMAScript没proposal追悼式ECMAScript没proposal追悼式
ECMAScript没proposal追悼式
 
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
なぜ、PHPのmbstring.func_overloadをdeprecatedにするのに5年かかったのか? - 慢心、環境の違い
 
Goでかんたんソースコードの静的解析
Goでかんたんソースコードの静的解析Goでかんたんソースコードの静的解析
Goでかんたんソースコードの静的解析
 
Apacheの展望とmod_perlの超絶技巧 #yapcasia
Apacheの展望とmod_perlの超絶技巧 #yapcasiaApacheの展望とmod_perlの超絶技巧 #yapcasia
Apacheの展望とmod_perlの超絶技巧 #yapcasia
 
Pelican の紹介 / World Plone Day 2017 Tokyo
Pelican の紹介 / World Plone Day 2017 TokyoPelican の紹介 / World Plone Day 2017 Tokyo
Pelican の紹介 / World Plone Day 2017 Tokyo
 
PySide/QtWebkitで楽々 slideshare Hack
PySide/QtWebkitで楽々 slideshare HackPySide/QtWebkitで楽々 slideshare Hack
PySide/QtWebkitで楽々 slideshare Hack
 
Python charity talk in japan fastAPI introduction
Python charity talk in japan fastAPI introductionPython charity talk in japan fastAPI introduction
Python charity talk in japan fastAPI introduction
 
Python におけるドメイン駆動設計(戦術面)の勘どころ
Python におけるドメイン駆動設計(戦術面)の勘どころPython におけるドメイン駆動設計(戦術面)の勘どころ
Python におけるドメイン駆動設計(戦術面)の勘どころ
 

Andere mochten auch

My pyhack 1301
My pyhack 1301My pyhack 1301
My pyhack 1301hirokiky
 
django-meio-easytags Lightining Talk @ DjangoCon US 2011
django-meio-easytags Lightining Talk @ DjangoCon US 2011django-meio-easytags Lightining Talk @ DjangoCon US 2011
django-meio-easytags Lightining Talk @ DjangoCon US 2011Vinicius Mendes
 
Django, Framework Python para desenvolvimento web
Django, Framework Python para desenvolvimento webDjango, Framework Python para desenvolvimento web
Django, Framework Python para desenvolvimento webMayron Cachina
 
Activity streams Lightning Talk, DjangoCon 2011, Day3
Activity streams Lightning Talk, DjangoCon 2011, Day3Activity streams Lightning Talk, DjangoCon 2011, Day3
Activity streams Lightning Talk, DjangoCon 2011, Day3Steve Ivy
 
High Performance Django 1
High Performance Django 1High Performance Django 1
High Performance Django 1DjangoCon2008
 
Introducing Django
Introducing DjangoIntroducing Django
Introducing Djangozerok
 

Andere mochten auch (8)

My pyhack 1301
My pyhack 1301My pyhack 1301
My pyhack 1301
 
django-meio-easytags Lightining Talk @ DjangoCon US 2011
django-meio-easytags Lightining Talk @ DjangoCon US 2011django-meio-easytags Lightining Talk @ DjangoCon US 2011
django-meio-easytags Lightining Talk @ DjangoCon US 2011
 
Django, Framework Python para desenvolvimento web
Django, Framework Python para desenvolvimento webDjango, Framework Python para desenvolvimento web
Django, Framework Python para desenvolvimento web
 
Welcome to the Django
Welcome to the DjangoWelcome to the Django
Welcome to the Django
 
Activity streams Lightning Talk, DjangoCon 2011, Day3
Activity streams Lightning Talk, DjangoCon 2011, Day3Activity streams Lightning Talk, DjangoCon 2011, Day3
Activity streams Lightning Talk, DjangoCon 2011, Day3
 
High Performance Django 1
High Performance Django 1High Performance Django 1
High Performance Django 1
 
Introducing Django
Introducing DjangoIntroducing Django
Introducing Django
 
Django Intro
Django IntroDjango Intro
Django Intro
 

Ähnlich wie Useful Django 1.4

PyCon JP 2016 ビギナーセッション
PyCon JP 2016 ビギナーセッションPyCon JP 2016 ビギナーセッション
PyCon JP 2016 ビギナーセッションTetsuya Morimoto
 
Cryogenでサイトつくろーじぇん
CryogenでサイトつくろーじぇんCryogenでサイトつくろーじぇん
CryogenでサイトつくろーじぇんKazuhiro Hara
 
GitHubで見つかるFileMaker関連ソフトウェア
GitHubで見つかるFileMaker関連ソフトウェアGitHubで見つかるFileMaker関連ソフトウェア
GitHubで見つかるFileMaker関連ソフトウェアAtsushi Matsuo
 
Golangによるubicの試作
Golangによるubicの試作Golangによるubicの試作
Golangによるubicの試作kn1kn1
 
Indexing with Algolia Ruby API Client
Indexing with Algolia Ruby API ClientIndexing with Algolia Ruby API Client
Indexing with Algolia Ruby API ClientEiji Shinohara
 
Wiki設置するならgitit!
Wiki設置するならgitit!Wiki設置するならgitit!
Wiki設置するならgitit!Kiwamu Okabe
 
concrete5 テーマ作成ハンズオン (Ver5.6 まで)
concrete5 テーマ作成ハンズオン (Ver5.6 まで)concrete5 テーマ作成ハンズオン (Ver5.6 まで)
concrete5 テーマ作成ハンズオン (Ver5.6 まで)Katz Ueno
 
Chiba pm#1 - ArangoDB for Perl
Chiba pm#1 - ArangoDB for PerlChiba pm#1 - ArangoDB for Perl
Chiba pm#1 - ArangoDB for PerlHideaki Ohno
 
「モダンPerl入門」の入門
「モダンPerl入門」の入門「モダンPerl入門」の入門
「モダンPerl入門」の入門Songhee Han
 
個人で作っているgoのプロダクト by zchee編
個人で作っているgoのプロダクト by zchee編個人で作っているgoのプロダクト by zchee編
個人で作っているgoのプロダクト by zchee編Koichi Shiraishi
 
Introduce that Best practices for writing Dockerfiles
Introduce that Best practices for writing DockerfilesIntroduce that Best practices for writing Dockerfiles
Introduce that Best practices for writing DockerfilesYukiya Hayashi
 
Djangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込むDjangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込む2bo 2bo
 
130329 perl casual_ruik
130329 perl casual_ruik130329 perl casual_ruik
130329 perl casual_ruikRui Kimura
 
CPANモジュールをPHPに移植してみた話
CPANモジュールをPHPに移植してみた話CPANモジュールをPHPに移植してみた話
CPANモジュールをPHPに移植してみた話memememomo
 
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC Webアプリケーション
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC WebアプリケーションPlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC Webアプリケーション
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC WebアプリケーションKazuhiro Hara
 

Ähnlich wie Useful Django 1.4 (20)

XcodeでGit
XcodeでGitXcodeでGit
XcodeでGit
 
PyCon JP 2016 ビギナーセッション
PyCon JP 2016 ビギナーセッションPyCon JP 2016 ビギナーセッション
PyCon JP 2016 ビギナーセッション
 
Cryogenでサイトつくろーじぇん
CryogenでサイトつくろーじぇんCryogenでサイトつくろーじぇん
Cryogenでサイトつくろーじぇん
 
GitHubで見つかるFileMaker関連ソフトウェア
GitHubで見つかるFileMaker関連ソフトウェアGitHubで見つかるFileMaker関連ソフトウェア
GitHubで見つかるFileMaker関連ソフトウェア
 
Golangによるubicの試作
Golangによるubicの試作Golangによるubicの試作
Golangによるubicの試作
 
Indexing with Algolia Ruby API Client
Indexing with Algolia Ruby API ClientIndexing with Algolia Ruby API Client
Indexing with Algolia Ruby API Client
 
Wiki設置するならgitit!
Wiki設置するならgitit!Wiki設置するならgitit!
Wiki設置するならgitit!
 
concrete5 テーマ作成ハンズオン (Ver5.6 まで)
concrete5 テーマ作成ハンズオン (Ver5.6 まで)concrete5 テーマ作成ハンズオン (Ver5.6 まで)
concrete5 テーマ作成ハンズオン (Ver5.6 まで)
 
210630 python
210630 python210630 python
210630 python
 
RgGen ご紹介
RgGen ご紹介RgGen ご紹介
RgGen ご紹介
 
Go入門
Go入門Go入門
Go入門
 
Chiba pm#1 - ArangoDB for Perl
Chiba pm#1 - ArangoDB for PerlChiba pm#1 - ArangoDB for Perl
Chiba pm#1 - ArangoDB for Perl
 
「モダンPerl入門」の入門
「モダンPerl入門」の入門「モダンPerl入門」の入門
「モダンPerl入門」の入門
 
個人で作っているgoのプロダクト by zchee編
個人で作っているgoのプロダクト by zchee編個人で作っているgoのプロダクト by zchee編
個人で作っているgoのプロダクト by zchee編
 
Introduce that Best practices for writing Dockerfiles
Introduce that Best practices for writing DockerfilesIntroduce that Best practices for writing Dockerfiles
Introduce that Best practices for writing Dockerfiles
 
Djangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込むDjangoとweb2pyをapacheに組込む
Djangoとweb2pyをapacheに組込む
 
130329 perl casual_ruik
130329 perl casual_ruik130329 perl casual_ruik
130329 perl casual_ruik
 
Yesod on Heroku
Yesod on HerokuYesod on Heroku
Yesod on Heroku
 
CPANモジュールをPHPに移植してみた話
CPANモジュールをPHPに移植してみた話CPANモジュールをPHPに移植してみた話
CPANモジュールをPHPに移植してみた話
 
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC Webアプリケーション
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC WebアプリケーションPlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC Webアプリケーション
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC Webアプリケーション
 

Mehr von hirokiky

簡単な算数でできる文章校正
簡単な算数でできる文章校正簡単な算数でできる文章校正
簡単な算数でできる文章校正hirokiky
 
エンジニアが起業のアイディアを見つける方法
エンジニアが起業のアイディアを見つける方法エンジニアが起業のアイディアを見つける方法
エンジニアが起業のアイディアを見つける方法hirokiky
 
それ、公開しちゃおうよ - みんなのPython勉強会63登壇
それ、公開しちゃおうよ - みんなのPython勉強会63登壇それ、公開しちゃおうよ - みんなのPython勉強会63登壇
それ、公開しちゃおうよ - みんなのPython勉強会63登壇hirokiky
 
プロダクト開発してわかったDjangoの深〜いパーミッション管理の話 @ PyconJP2017
プロダクト開発してわかったDjangoの深〜いパーミッション管理の話 @ PyconJP2017プロダクト開発してわかったDjangoの深〜いパーミッション管理の話 @ PyconJP2017
プロダクト開発してわかったDjangoの深〜いパーミッション管理の話 @ PyconJP2017hirokiky
 
営業も広報もいない僕たちが11年間やってきたこと
営業も広報もいない僕たちが11年間やってきたこと営業も広報もいない僕たちが11年間やってきたこと
営業も広報もいない僕たちが11年間やってきたことhirokiky
 
LLoT ランゲージアップデート Python
LLoT ランゲージアップデート PythonLLoT ランゲージアップデート Python
LLoT ランゲージアップデート Pythonhirokiky
 
How we realized SOA by Python at PyCon JP 2015
How we realized SOA by Python at PyCon JP 2015How we realized SOA by Python at PyCon JP 2015
How we realized SOA by Python at PyCon JP 2015hirokiky
 
価値を届ける技術 #bpstudy 96
価値を届ける技術 #bpstudy 96価値を届ける技術 #bpstudy 96
価値を届ける技術 #bpstudy 96hirokiky
 
Pycon2014 django performance
Pycon2014 django performancePycon2014 django performance
Pycon2014 django performancehirokiky
 
gargant.dispatch, a flexible dispatcher for WSGI
gargant.dispatch, a flexible dispatcher for WSGIgargant.dispatch, a flexible dispatcher for WSGI
gargant.dispatch, a flexible dispatcher for WSGIhirokiky
 
Django最速デバッグ指南 PyConAPAC 2013
Django最速デバッグ指南 PyConAPAC 2013Django最速デバッグ指南 PyConAPAC 2013
Django最速デバッグ指南 PyConAPAC 2013hirokiky
 
軽量のススメ
軽量のススメ軽量のススメ
軽量のススメhirokiky
 
django-websettingsの紹介
django-websettingsの紹介django-websettingsの紹介
django-websettingsの紹介hirokiky
 
pyramid_layoutと僕と、ときどきzope.interface
pyramid_layoutと僕と、ときどきzope.interfacepyramid_layoutと僕と、ときどきzope.interface
pyramid_layoutと僕と、ときどきzope.interfacehirokiky
 
個人の嗜好を学習し記事を推奨するフィードリーダ
個人の嗜好を学習し記事を推奨するフィードリーダ個人の嗜好を学習し記事を推奨するフィードリーダ
個人の嗜好を学習し記事を推奨するフィードリーダhirokiky
 
卒研中間発表資料:個人に最適化したフィードリーダの構築
卒研中間発表資料:個人に最適化したフィードリーダの構築卒研中間発表資料:個人に最適化したフィードリーダの構築
卒研中間発表資料:個人に最適化したフィードリーダの構築hirokiky
 

Mehr von hirokiky (16)

簡単な算数でできる文章校正
簡単な算数でできる文章校正簡単な算数でできる文章校正
簡単な算数でできる文章校正
 
エンジニアが起業のアイディアを見つける方法
エンジニアが起業のアイディアを見つける方法エンジニアが起業のアイディアを見つける方法
エンジニアが起業のアイディアを見つける方法
 
それ、公開しちゃおうよ - みんなのPython勉強会63登壇
それ、公開しちゃおうよ - みんなのPython勉強会63登壇それ、公開しちゃおうよ - みんなのPython勉強会63登壇
それ、公開しちゃおうよ - みんなのPython勉強会63登壇
 
プロダクト開発してわかったDjangoの深〜いパーミッション管理の話 @ PyconJP2017
プロダクト開発してわかったDjangoの深〜いパーミッション管理の話 @ PyconJP2017プロダクト開発してわかったDjangoの深〜いパーミッション管理の話 @ PyconJP2017
プロダクト開発してわかったDjangoの深〜いパーミッション管理の話 @ PyconJP2017
 
営業も広報もいない僕たちが11年間やってきたこと
営業も広報もいない僕たちが11年間やってきたこと営業も広報もいない僕たちが11年間やってきたこと
営業も広報もいない僕たちが11年間やってきたこと
 
LLoT ランゲージアップデート Python
LLoT ランゲージアップデート PythonLLoT ランゲージアップデート Python
LLoT ランゲージアップデート Python
 
How we realized SOA by Python at PyCon JP 2015
How we realized SOA by Python at PyCon JP 2015How we realized SOA by Python at PyCon JP 2015
How we realized SOA by Python at PyCon JP 2015
 
価値を届ける技術 #bpstudy 96
価値を届ける技術 #bpstudy 96価値を届ける技術 #bpstudy 96
価値を届ける技術 #bpstudy 96
 
Pycon2014 django performance
Pycon2014 django performancePycon2014 django performance
Pycon2014 django performance
 
gargant.dispatch, a flexible dispatcher for WSGI
gargant.dispatch, a flexible dispatcher for WSGIgargant.dispatch, a flexible dispatcher for WSGI
gargant.dispatch, a flexible dispatcher for WSGI
 
Django最速デバッグ指南 PyConAPAC 2013
Django最速デバッグ指南 PyConAPAC 2013Django最速デバッグ指南 PyConAPAC 2013
Django最速デバッグ指南 PyConAPAC 2013
 
軽量のススメ
軽量のススメ軽量のススメ
軽量のススメ
 
django-websettingsの紹介
django-websettingsの紹介django-websettingsの紹介
django-websettingsの紹介
 
pyramid_layoutと僕と、ときどきzope.interface
pyramid_layoutと僕と、ときどきzope.interfacepyramid_layoutと僕と、ときどきzope.interface
pyramid_layoutと僕と、ときどきzope.interface
 
個人の嗜好を学習し記事を推奨するフィードリーダ
個人の嗜好を学習し記事を推奨するフィードリーダ個人の嗜好を学習し記事を推奨するフィードリーダ
個人の嗜好を学習し記事を推奨するフィードリーダ
 
卒研中間発表資料:個人に最適化したフィードリーダの構築
卒研中間発表資料:個人に最適化したフィードリーダの構築卒研中間発表資料:個人に最適化したフィードリーダの構築
卒研中間発表資料:個人に最適化したフィードリーダの構築
 

Kürzlich hochgeladen

論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 

Kürzlich hochgeladen (9)

論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 

Useful Django 1.4

  • 1. Useful Django1.4 Django & Pyramid Con 2012 @hirokiky 12年9月18日火曜日
  • 2. Useful Django1.4 • About me (2m) • About Django (19m) • Useful things of Django > 1.0 (19m) Speaker: @hirokiky 12年9月18日火曜日
  • 3. Useful Django1.4 • About me • About Django • Useful things of Django > 1.0 Speaker: @hirokiky 12年9月18日火曜日
  • 4. About me • @hirokiky (Hiroki KIYOHARA) • Weekend Programmer • Admin of djangoproject.jp Speaker: @hirokiky 12年9月18日火曜日
  • 5. djangoproject.jp http://djangoproject.jp/ https://github.com/django-ja/djangoproject.jp/ Speaker: @hirokiky 12年9月18日火曜日
  • 6. Useful Django1.4 • About me • About Django • Useful things of Django > 1.0 Speaker: @hirokiky 12年9月18日火曜日
  • 7. Django is a Open Source Web framework written by Python. Speaker: @hirokiky 12年9月18日火曜日
  • 8. DjangoSites • Disqus • Instagram • Mozilla • bitbucket Speaker: @hirokiky 12年9月18日火曜日
  • 9. WebServer request Template URL Dispatcher response View Model DataBase Speaker: @hirokiky 12年9月18日火曜日
  • 10. Philosophies • Loose coupling • Less code • Quick development • Don t repeat yourself (DRY) • Explicit is better than implict • Consistency https://docs.djangoproject.com/en/1.4/misc/design-philosophies/ Speaker: @hirokiky 12年9月18日火曜日
  • 11. Killer features • Automatically-generated admin site • Form library • Generic views Speaker: @hirokiky 12年9月18日火曜日
  • 12. Admin site • Automatically-generated • Easy to customize Speaker: @hirokiky 12年9月18日火曜日
  • 13. Demo: Admin (15m) • startproject, create models, run admin site(10m) • Introduction of django-blog-zinnia (5m) Speaker: @hirokiky 12年9月18日火曜日
  • 14. Read Docs and some codes If you want to learn more Speaker: @hirokiky 12年9月18日火曜日
  • 15. Useful Django1.4 • About me • About Django • Useful things of Django > 1.0 Speaker: @hirokiky 12年9月18日火曜日
  • 16. Django > 1.0 • project template • <del>Class Based View</del> <!-- Because of time constraints --> Speaker: @hirokiky 12年9月18日火曜日
  • 17. project template • Django>=1.4 • template of project https://docs.djangoproject.com/en/dev/releases/1.4/#custom-project-and-app-templates Speaker: @hirokiky 12年9月18日火曜日
  • 18. Project template provide • easy deploy to a specific environment • archiving some best practices Speaker: @hirokiky 12年9月18日火曜日
  • 19. Boring tasks after startproject • Judging environments (DEBUG, True or False. • A application should put in project/apps. (not default, but good know-how • Writing dependences. • Dealing informations we want to write in settings (SECRET_KEY, PASSWORD Speaker: @hirokiky 12年9月18日火曜日
  • 20. Solving all of these by templating Speaker: @hirokiky 12年9月18日火曜日
  • 21. How to use project template django-admin.py startproject --template=/path/to/template myproject --template=/path/to/template also URL Speaker: @hirokiky 12年9月18日火曜日
  • 22. template ├──  fabfile.py ├──  gunicorn.py.ini ├──  manage.py ├──  Procfile ├──  reqs │      ├──  common.txt template is like this │      ├──  dev.txt │      └──  prod.txt ├──  requirements.txt (A directory) ├──  project_name │      ├──  apps │      │      └──  __init__.py │      ├──  __init__.py │      ├──  libs │      │      └──  __init__.py │      ├──  settings │      │      ├──  common.py │      │      ├──  dev.py │      │      ├──  __init__.py │      │      └──  prod.py │      ├──  templates │      │      ├──  404.html │      │      └──  500.html │      └──  urls.py └──  wsgi.py Speaker: @hirokiky 12年9月18日火曜日
  • 23. template ├──  fabfile.py ├──  gunicorn.py.ini ├──  manage.py ├──  Procfile ├──  reqs │      ├──  common.txt template is like this │      ├──  dev.txt │      └──  prod.txt ├──  requirements.txt ├──  project_name │      ├──  apps │      │      └──  __init__.py This name will be │      ├──  __init__.py │      ├──  libs │      │      └──  __init__.py replaced with │      ├──  settings │      │      ├──  common.py project s name │      │      ├──  dev.py │      │      ├──  __init__.py │      │      └──  prod.py │      ├──  templates │      │      ├──  404.html │      │      └──  500.html │      └──  urls.py └──  wsgi.py Speaker: @hirokiky 12年9月18日火曜日
  • 24. Also .py files if  __name__  ==  "__main__":        os.environ.setdefault("DJANGO_SETTINGS_MODULE",  "{{  project_name  }}.settings.dev")        from  django.core.management  import  execute_from_command_line        execute_from_command_line(sys.argv) • project_name • project_directory • secret_key • Also another files specified by option Speaker: @hirokiky 12年9月18日火曜日
  • 25. In essence You can use own project template, instead of django/conf/project_template Speaker: @hirokiky 12年9月18日火曜日
  • 26. Example: django-skel • heroku + S3 platform • Filled with best practices that rdegges have learned for four years. https://github.com/rdegges/django-skel Speaker: @hirokiky 12年9月18日火曜日
  • 27. Workflow Speaker: @hirokiky 12年9月18日火曜日
  • 28. Before developing • startproject --template ... • git init • pip install -r reqs/dev.txt • sync, migrate, runserver Speaker: @hirokiky 12年9月18日火曜日
  • 29. Hack some apps (not projects) Speaker: @hirokiky 12年9月18日火曜日
  • 30. Before deploying • fab  bootstrap • heroku  config:add  ... • heroku  scale  ... • collectstatic  &&  compress Speaker: @hirokiky 12年9月18日火曜日
  • 31. Good joooooo( ́ `)oooooob!!!! Speaker: @hirokiky 12年9月18日火曜日
  • 32. Let s learn best practices from django-skel • Judging environments • apps directory Speaker: @hirokiky 12年9月18日火曜日
  • 33. django-­‐skel ├──  fabfile.py ├──  gunicorn.py.ini ├──  manage.py ├──  Procfile ├──  reqs │      ├──  common.txt │      ├──  dev.txt │      └──  prod.txt ├──  requirements.txt Note: ├──  project_name │      ├──  apps │      │      └──  __init__.py │      ├──  __init__.py django-skel s │      ├──  libs │      │      └──  __init__.py │      ├──  settings layout │      │      ├──  common.py │      │      ├──  dev.py │      │      ├──  __init__.py │      │      └──  prod.py │      ├──  templates │      │      ├──  404.html │      │      └──  500.html │      └──  urls.py └──  wsgi.py Speaker: @hirokiky 12年9月18日火曜日
  • 34. Judging environments • Judging environments automaticaly. • Don t do hardcoding (settings.DEBUG = True Speaker: @hirokiky 12年9月18日火曜日
  • 35. On django-skel ├──  settings │      │      ├──  __init__.py │      │      ├──  common.py │      │      ├──  dev.py │      │      └──  prod.py • Only  development  setting  will  put  in  dev.py • settings  for  production  =>  prod.py • Common  settings  =>  common.py • heroku  config:add   DJANGO_SETTINGS_MODULE={{  project_name  }}.settings.prod Speaker: @hirokiky 12年9月18日火曜日
  • 36. apps directory • Directory for applications • For avoiding import collision Speaker: @hirokiky 12年9月18日火曜日
  • 37. django-­‐skel ├──  fabfile.py ├──  gunicorn.py.ini ├──  manage.py ├──  Procfile ├──  reqs │      ├──  common.txt │      ├──  dev.txt │      └──  prod.txt ├──  requirements.txt ├──  project_name │      ├──  apps Here │      │      └──  __init__.py │      ├──  __init__.py │      ├──  libs │      │      └──  __init__.py │      ├──  settings │      │      ├──  common.py │      │      ├──  dev.py │      │      ├──  __init__.py │      │      └──  prod.py │      ├──  templates │      │      ├──  404.html │      │      └──  500.html │      └──  urls.py └──  wsgi.py Speaker: @hirokiky 12年9月18日火曜日
  • 38. .  #  here,  path |-­‐-­‐  aggregator |      |-­‐-­‐  __init__.py |      |-­‐-­‐  blog.py If no apps/ |      |-­‐-­‐  models.py |      |-­‐-­‐  tests.py |      `-­‐-­‐  views.py |-­‐-­‐  blog • Ex: In aggregator.views |      |-­‐-­‐  __init__.py |      |-­‐-­‐  models.py |      |-­‐-­‐  tests.py |      `-­‐-­‐  views.py |-­‐-­‐  manage.py `-­‐-­‐  myprj • from blog.models import Entry • ImportError        |-­‐-­‐  __init__.py        |-­‐-­‐  settings.py        |-­‐-­‐  urls.py        `-­‐-­‐  wsgi.py Speaker: @hirokiky 12年9月18日火曜日
  • 39. .  #  here,  path |-­‐-­‐  apps |      |-­‐-­‐  __init__.py |      |-­‐-­‐  aggregator |      |      |-­‐-­‐  __init__.py Then apps/ |      |      |-­‐-­‐  blog.py |      |      |-­‐-­‐  models.py |      |      |-­‐-­‐  tests.py |      |      `-­‐-­‐  views.py |      `-­‐-­‐  blog |              |-­‐-­‐  __init__.py |              |-­‐-­‐  models.py |              |-­‐-­‐  tests.py |              `-­‐-­‐  views.py |-­‐-­‐  manage.py • from apps.blog.model import Entry `-­‐-­‐  myprj        |-­‐-­‐  __init__.py        |-­‐-­‐  settings.py        |-­‐-­‐  urls.py        `-­‐-­‐  wsgi.py Speaker: @hirokiky 12年9月18日火曜日
  • 40. Project template provide • easy deploy to a specific environment • archiving some best practices Speaker: @hirokiky 12年9月18日火曜日
  • 41. Luke of Django • Deploy project avoiding HELL • Learn best practices through reading good project templates Speaker: @hirokiky 12年9月18日火曜日
  • 42. Yoda of Django • Without remembering best practices and adapting to new project to these • Create Django s default standards in the form of project template Speaker: @hirokiky 12年9月18日火曜日
  • 43. Killer Feature of Django1.4 is not only {% elif %} Speaker: @hirokiky 12年9月18日火曜日
  • 44. Announce • I held DjangoSprint • 2012 September 17 • It don t force you what to do. • http://2012.pycon.jp/en/program/sprints.html Speaker: @hirokiky 12年9月18日火曜日
  • 45. Thank you Speaker: @hirokiky 12年9月18日火曜日
  • 46. Any questions? Speaker: @hirokiky 12年9月18日火曜日
  • 47. References • djangoproject.jp • djangoproject.com • django-blog-zinnia • django-skel Speaker: @hirokiky 12年9月18日火曜日
  • 48. django-docs-ja • We are translating Django1.4 documents to Japanese https://github.com/django-docs-ja/django-docs-ja Speaker: @hirokiky 12年9月18日火曜日