gumiStudy#3 Django – 次の一歩

1,202 views
1,127 views

Published on

Djangoの出自からDjangoの仕組みについて理解を深めます。
アプリケーション設計のための第一歩です。

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,202
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
10
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

gumiStudy#3 Django – 次の一歩

  1. 1. Django AUTHORS Python Google 3
  2. 2. 7 10 Django 5
  3. 3. Django
  4. 4. PHP Python
  5. 5. 2003
  6. 6. Ruby on Rails
  7. 7. 2005
  8. 8. World Online often has only a matter of hours to take a complicated Web application from concept to public launch.
  9. 9.
  10. 10.
  11. 11.
  12. 12. DB URL
  13. 13. DB URL
  14. 14. DB URL
  15. 15. DB URL
  16. 16. DB URL
  17. 17. DB URL
  18. 18. 85%
  19. 19. http://www2.ljworld.com/ LJWorld …
  20. 20. http://www2.ljworld.com/ 2005 Django Adrian
  21. 21. http://www2.ljworld.com/ 2005 Django Adrian
  22. 22. http://www2.ljworld.com/ 2005 Django Adrian
  23. 23. http://www2.ljworld.com/ 2005 Django Adrian
  24. 24. http://www2.ljworld.com/ 2005 Django Adrian
  25. 25. … …
  26. 26. 27.6 django-admin.py startproject startapp manage.py
  27. 27. 4 settings.py 4
  28. 28. 4 settings.py 4
  29. 29. 4 settings.py 4
  30. 30. settings.py INSTALLED_APPS 5 Web blog blog
  31. 31. settings.py INSTALLED_APPS 5 Web blog blog
  32. 32. 10 manage.py shell blog startapp gumistudy.blog blog manage.py ./manage.py PYTHONPATH Python Shell gumistudy.blog manage.py PYTHONPATH blog
  33. 33.
  34. 34. Django
  35. 35. Django
  36. 36. admindoc Django view Django BIDI
  37. 37. RegexValidator ■ URLValidator ■ validate_email ■ validate_slug ■ validate_ipv4_address ■ validate_comma_separated_integer_list ■ MaxValueValidator ■ MinValueValidator ■ MaxLengthValidator ■ MinLengthValidator Model validators validator …
  38. 38. ValidationError raise DRY
  39. 39. CharField Integer validators RegexValidator validator CharField SlugField Slug URL DB
  40. 40. models models.py
  41. 41. models models.py
  42. 42. … models import models meta app_label
  43. 43. … models import models meta app_label
  44. 44. … Entry django.contrib.auth User Entry auhtor User Entry User entry_set User
  45. 45. … Entry django.contrib.auth User Entry auhtor User Entry User entry_set User
  46. 46. django.contrib.auth django.contrib.contenttypes ContentType django.contrib.auth
  47. 47. django.contrib.auth django.contrib.contenttypes ContentType django.contrib.auth
  48. 48. memcached
  49. 49. Signal Signal send
  50. 50. Signal Signal send
  51. 51. Signal Signal send
  52. 52. send sender args connect sender args connect sender
  53. 53. send sender args connect sender args connect sender
  54. 54. send sender args connect sender args connect sender
  55. 55.
  56. 56. Python
  57. 57. Python
  58. 58. Python
  59. 59. Abstract syncdb
  60. 60. … Proxy
  61. 61. … Proxy
  62. 62. O/R Mapper SQL O/R Mapper SQL SQL
  63. 63. objects filter exclude all … … all filter …
  64. 64. objects filter exclude all … … all filter …
  65. 65. objects filter exclude all … … all filter …
  66. 66. objects filter exclude all … … all filter …
  67. 67. F Aggregation F Aggregation aggregate annotate aggregate annotate Aggregate Annotate Queryset
  68. 68. F Aggregation F Aggregation aggregate annotate aggregate annotate Aggregate Annotate Queryset
  69. 69. F Aggregation F Aggregation aggregate annotate aggregate annotate Aggregate Annotate Queryset
  70. 70. DRY Queryset get_query_set Entry public_objects pub_date Queryset objects Manager Django Django
  71. 71. DRY Queryset get_query_set Entry public_objects pub_date Queryset objects Manager Django Django
  72. 72. Django Django
  73. 73. Django Django
  74. 74. using using default
  75. 75. using using default
  76. 76. Django DatabaseRouters DatabaseRouters syncdb None None Django DatabaseRouter default
  77. 77. Django Django django.contrib
  78. 78. 1:30 ) bitbucket
  79. 79. 1:30 ) bitbucket
  80. 80. ModelAdmin Queryset Queryset bulk update save
  81. 81. ModelAdmin Queryset Queryset bulk update save
  82. 82. Django Django Ellington CMS admin
  83. 83. settings.py TEMPLATE_LOADERS TEMPLATE_DIRS TEMPLATE_LOADERS filesystem.Loader app_directories.Loader TEMPLATE_DIRS TEMPLATE_DIRS app_directories.Loader
  84. 84. settings.py TEMPLATE_LOADERS TEMPLATE_DIRS TEMPLATE_LOADERS filesystem.Loader app_directories.Loader TEMPLATE_DIRS TEMPLATE_DIRS app_directories.Loader
  85. 85. app_directories.Loader Django templates app_directories.Loader templates
  86. 86. app_directories.Loader Django templates app_directories.Loader templates
  87. 87. app_directories.Loader Django templates app_directories.Loader templates
  88. 88. filesystem.Loader TEMPLATE_DIRS templates TEMPLATE_DIRS
  89. 89. filesystem.Loader TEMPLATE_DIRS templates TEMPLATE_DIRS
  90. 90. Django Django 2
  91. 91. admin/site_base.html … app_directory.Loader filesystem.Loader
  92. 92. admin/site_base.html … app_directory.Loader filesystem.Loader
  93. 93. ! <html> !!! <head>{% block title %} {% endblock title %}</head> <script type="text/javascript" src="common.js"></script> {% block custom_js %}{% endblock custom_js %} !!! <body> !!! <div id="menu">{% block menu %}{% endblock menu %}</div> !!! <div id="content">{% block content %}{% endblock content %}</div> <div id=”copyright”>{% block copyright %}everes{% endblock %}</div> !!! </body> ! </html> ! {% extends 'base.html% %} ! {% block title %}{{ block.super }} {% endblock title %} ! {% block menu %} {% endblock menu %} ! {% extends 'app/base.html' %} ! {% block content %} {% endblock content %}
  94. 94. ! <html> !!! <head>{% block title %} {% endblock title %}</head> <script type="text/javascript" src="common.js"></script> {% block custom_js %}{% endblock custom_js %} !!! <body> !!! <div id="menu">{% block menu %}{% endblock menu %}</div> !!! <div id="content">{% block content %}{% endblock content %}</div> <div id=”copyright”>{% block copyright %}everes{% endblock %}</div> !!! </body> ! </html> ! {% extends 'base.html% %} ! {% block title %}{{ block.super }} {% endblock title %} ! {% block menu %} {% endblock menu %} ! {% extends 'app/base.html' %} ! {% block content %} {% endblock content %}
  95. 95. ! <html> !!! <head>{% block title %} {% endblock title %}</head> <script type="text/javascript" src="common.js"></script> {% block custom_js %}{% endblock custom_js %} !!! <body> !!! <div id="menu">{% block menu %}{% endblock menu %}</div> !!! <div id="content">{% block content %}{% endblock content %}</div> <div id=”copyright”>{% block copyright %}everes{% endblock %}</div> !!! </body> ! </html> ! {% extends 'base.html% %} ! {% block title %}{{ block.super }} {% endblock title %} ! {% block menu %} {% endblock menu %} ! {% extends 'app/base.html' %} ! {% block content %} {% endblock content %}
  96. 96. ! <html> !!! <head>{% block title %} {% endblock title %}</head> <script type="text/javascript" src="common.js"></script> {% block custom_js %}{% endblock custom_js %} !!! <body> !!! <div id="menu">{% block menu %}{% endblock menu %}</div> !!! <div id="content">{% block content %}{% endblock content %}</div> <div id=”copyright”>{% block copyright %}everes{% endblock %}</div> !!! </body> ! </html> ! {% extends 'base.html% %} ! {% block title %}{{ block.super }} {% endblock title %} ! {% block menu %} {% endblock menu %} ! {% extends 'app/base.html' %} ! {% block content %} {% endblock content %}

×