SlideServe
Menu
Préférences
© SlideServe · v2026

Accelerating Information Technology Innovation

nellis avatar
46 diapositives · 639 Views · Jul 12, 2014

Accelerating Information Technology Innovation. http://aiti.mit.edu. Ghana Summer 2013 Django Lecture 5 - Models. How Django works. localhost:8000/blog/detail/4. Templates. urls.py. Models. T itle. Views. Blog Comment. Date. Body.

Accelerating Information Technology Innovation - slide 1
01 / 46Accelerating Information Technology Innovation
1 / 17

Télécharger la présentation

Accelerating Information Technology Innovation
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation

Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement. Téléchargez la présentation en cliquant sur ce lien. Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.

F I N

Plus de contenu associé

Transcription de la présentation
  1. Accelerating Information Technology Innovation http://aiti.mit.edu Ghana Summer 2013 Django Lecture 5 - Models

  2. How Django works localhost:8000/blog/detail/4 Templates urls.py Models Title Views Blog Comment Date Body Give me blog post # 4 and all its comments and put it in the detail template Comment author Comment Comment author Comment

  3. Today: Views and urls.py localhost:8000/blog/detail/4 Templates urls.py Models Title Views Blog Comment Date Body Give me blog post # 4 and all its comments and put it in the detail template Comment author Comment Comment author Comment

  4. Today’s lab: search your blog localhost:8000/search/<term> Template: search.html urls.py Models Views Term: term Matching blog posts: Some blog post Some other blog post Blog Give me blog posts that match the search term and put them in the search.html template

  5. Views • Get data from Model • Choose a template to display • Return template and data

  6. Views: list.html • Get list of all blogs • Put it in the list.html template defblog_list(request): blog_list = Blog.objects.all() t = loader.get_template('blog/list.html') c = Context({'blog_list':blog_list}) return HttpResponse(t.render(c))

  7. Data from Model defblog_list(request): blog_list = Blog.objects.all() t = loader.get_template('blog/list.html') c = Context({'blog_list':blog_list}) return HttpResponse(t.render(c))

  8. Choose template defblog_list(request): blog_list = Blog.objects.all() t = loader.get_template('blog/list.html') c = Context({'blog_list':blog_list}) return HttpResponse(t.render(c))

  9. Name variables to be used in template defblog_list(request): blog_list = Blog.objects.all() t = loader.get_template('blog/list.html') c = Context({'blog_list':blog_list}) return HttpResponse(t.render(c))

  10. Return template with data defblog_list(request): blog_list = Blog.objects.all() t = loader.get_template('blog/list.html') c = Context({'blog_list':blog_list}) return HttpResponse(t.render(c))

  11. Getting data from Models • Always start with Blog.objects • Get all blogs Blog.objects.all() • Get a specific blog Blog.objects.get(id=4)

  12. Filters • Get only specific data • contains: find if a match is contained inside a field • Blog.objects.filter(body__contains='cool') • icontains: case insensitive contains • Blog.objects.filter(author__icontains='smith’)

  13. Filter syntax • Blog.objects.filter(body__contains='cool’) • which field you’re searching (body, title, author) • 2 underscores • filter: contains/icontains • = • text of search term

  14. View to get blogs containing the word AITI defget_blogs_about_AITI(request): blog_list = Blog.objects.filter(body__contains=“AITI”) t = loader.get_template('blog/list.html') c = Context({'blog_list':blog_list}) return HttpResponse(t.render(c))

  15. Ordering • Blog.objects.order_by(‘pub_date’)

  16. Getting data from model • detail.html needs a specific blog, and all comments from that blog • view for detail.html: defblog_detail(request, id): blog = Blog.objects.get(id=id) comments = Comment.objects.filter(post=blog)

  17. Name variables to be used in templates defblog_detail(request, id): blog = Blog.objects.get(id=id) comments = Comment.objects.filter(post=blog) c = Context({'blog':blog, 'comments':comments})

  18. Lab: view for blog_search • Select all blogs containing the search term • Choose template to load it into • Name variables to be used in template defblog_search(request, search_term):

  19. Regular Expression • Patterns that text strings can match BALL BACK BA _ _ TALL BABOON

  20. Regular Expression • Patterns that text strings can match 123 “Any number of digits” 314589203 123abc BABOON

  21. How to define these patterns? • Special characters

  22. Start and end of line • ^ means start of line • $ means end of line hello ^hello$ hello world

  23. Characters • . matches anything! 8 1 . a z

  24. Characters • . matches anything! 812 193 ^ . . . $ a abcd

  25. Characters • \d matches digits 8 1 \d a z

  26. Characters • \w matches letters and numbers 8 A \w a %

  27. BALL BACK BA _ _ TALL BABOON

  28. Repetition • * means zero or more times a a* aaaaaa

  29. Repetition • + means one or more times a a+ aaaaaa

  30. Repetition • ? means exactly 0 or 1 times a a? aaaaaa

  31. Practice: which ones match the regex? a \d+ 1 123

  32. Practice: which ones match the regex? a \d+ 1 123

  33. Practice: which ones match the regex? a 1 .* 123abc

  34. Practice: which ones match the regex? a 1 .* 123abc

  35. | means “or” hello (hello|bye) bye potato

  36. ( ) means grouping hello (hello)+ hellohello hellothere

  37. urls.py • urls.py uses regular expressions to describe urls • All start with localhost:8000/blog/ url(r'^$', 'blog.views.home’)

  38. urls.py • urls.py uses regular expressions to describe urls • All urls start with localhost:8000/blog/ • Format: url(r'regex', ’view’) • Example: url(r'^$', 'blog.views.home’)

  39. urls.py url(r'^$', 'blog.views.home’) url(r'^list/$', 'blog.views.blog_list'), url(r'^(detail|info)/(\d+)$', 'blog.views.blog_detail'), Things in parentheses are passed into the views function!

  40. url(r'^$', 'blog.views.home’) ^$ 1 hello localhost:8000/blog/

  41. url(r'^list/$', 'blog.views.home’) list/ ^list/$ 1 hello localhost:8000/blog/list

  42. url(r'^(detail|info)/(\d+)$', 'blog.views.home’) detail/123 info/1 ^(detail|info)/(\d+)$ detail/ list localhost:8000/blog/detail/123

  43. url(r'^search/(happy)$', 'blog.views.blog_search') search/happy ^search/(happy)$ search/aiti hello localhost:8000/search/happy

  44. url(r'^search/(happy)$', 'blog.views.blog_search') Lab: change this regex to match any search term, not just “happy”

  45. Today’s lab: search your blog localhost:8000/search/<term> Template: search.html urls.py Models Views Term: term Matching blog posts: Some blog post Some other blog post Blog Give me blog posts that match the search term and put them in the search.html template

  46. Lab • Create a way to search for text in your blog posts • view • urls • template • Read all instructions before starting the lab! • If you haven’t finished the last lab, still move on to this lab.