Django Girls Seoul
Django Study
Django Model-View-Template
MTV? MVC?
Model?
Model ( )
• Database Django
• DB Column
•
from django.db import models
class SomeInfo(models.Model):
name = models.CharField(max_length=200)
• name Column 200
.
Model Field ( )
• models SomeInfo => DB SomeInfo Table
• SomeInfo name => DB name Column
Model Manager ( )
• DB Query
• SomeInfo.objects.
User Method ( )
•
• SomeInfo class
Rela%onship ( )
• class (DB table )
• OneToOneField(1:1) / ForeignKey(1:n) / ManyToManyField(n:n)
class UserInfo(models.Model):
user = models.OneToOneField(settings.AUTH_USER_MODEL) # !
nickname = models.CharField(max_length=20)
class Post(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL) # .
title = models.CharField(max_length=200)
content = models.TextField()
class Tag(models.Model):
post = models.ManyToManyField(Post) # Post , Post .
Rela%onship ( )
• OneToOneField
u = User(user=request.user)
u.userinfo.nickname # user UserInfo nickname
• ForeignKey
u.post_set.all() # user post
• ManyToManyField
p = Post.objects.first()
p.tag_set.all()
Template?
Template ( )
• Python HTML
• Django Template ( Jinja2)
• View
• render
• MVC V( )
Template ( )
<!-- some_var -->
{{ some_var }}
<!-- some_tag -->
{% some_tag %}
<!-- -->
{{ some_var | filter }}
<!-- -->
{# #}
{% comment %} {% endcomment %}
View?
View ( )
• Django URL
• MVC C( )
• Func4on Based View vs Class Based View
• request -> response
HTTP Request
• method // GET, POST, ..
• GET, POST -> DICT(k:v)
• FILES
• user
• session
• ...
REST?
RESTful?
REST <=> CRUD
REST and CRUD
• HTTP Method POST / GET / PUT / DELETE
• CRUD Create / Read / Update / Delete
•
RESTful
• OpenAPI
• (JSON / XML / RSS)
• StateLess ( Context )
•
• ( )
• Token

DjangoGirls Seoul | Django Study: Django Model-View-Template

  • 1.
    Django Girls Seoul DjangoStudy Django Model-View-Template
  • 2.
  • 3.
  • 4.
    Model ( ) •Database Django • DB Column • from django.db import models class SomeInfo(models.Model): name = models.CharField(max_length=200) • name Column 200 .
  • 5.
    Model Field () • models SomeInfo => DB SomeInfo Table • SomeInfo name => DB name Column Model Manager ( ) • DB Query • SomeInfo.objects.
  • 6.
    User Method () • • SomeInfo class
  • 7.
    Rela%onship ( ) •class (DB table ) • OneToOneField(1:1) / ForeignKey(1:n) / ManyToManyField(n:n) class UserInfo(models.Model): user = models.OneToOneField(settings.AUTH_USER_MODEL) # ! nickname = models.CharField(max_length=20) class Post(models.Model): user = models.ForeignKey(settings.AUTH_USER_MODEL) # . title = models.CharField(max_length=200) content = models.TextField() class Tag(models.Model): post = models.ManyToManyField(Post) # Post , Post .
  • 8.
    Rela%onship ( ) •OneToOneField u = User(user=request.user) u.userinfo.nickname # user UserInfo nickname • ForeignKey u.post_set.all() # user post • ManyToManyField p = Post.objects.first() p.tag_set.all()
  • 9.
  • 10.
    Template ( ) •Python HTML • Django Template ( Jinja2) • View • render • MVC V( )
  • 11.
    Template ( ) <!--some_var --> {{ some_var }} <!-- some_tag --> {% some_tag %} <!-- --> {{ some_var | filter }} <!-- --> {# #} {% comment %} {% endcomment %}
  • 12.
  • 13.
    View ( ) •Django URL • MVC C( ) • Func4on Based View vs Class Based View • request -> response
  • 14.
    HTTP Request • method// GET, POST, .. • GET, POST -> DICT(k:v) • FILES • user • session • ...
  • 15.
  • 16.
  • 17.
    REST and CRUD •HTTP Method POST / GET / PUT / DELETE • CRUD Create / Read / Update / Delete •
  • 18.
    RESTful • OpenAPI • (JSON/ XML / RSS) • StateLess ( Context ) • • ( ) • Token