Zagreb workshop
Upcoming SlideShare
Loading in...5
×
 

Zagreb workshop

on

  • 719 views

 

Statistics

Views

Total Views
719
Views on SlideShare
718
Embed Views
1

Actions

Likes
0
Downloads
8
Comments
0

1 Embed 1

http://instacurate.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Zagreb workshop Zagreb workshop Presentation Transcript

  • PYLADIES PRESENTS:Build your own blog with Django! 1
  • {{ GOALS }} Have funLearn about web development Create something 2
  • {{ LAYOUT }}Overview of Django Framework Code together 3
  • {{ DJANGO }}Django is to Python as Rails is to Ruby 4
  • {{ LET’S GET STARTED }} Quick note: do NOT copy texton these slides into your text editor. Write it out yourself. 5
  • {{ LET’S GET STARTED }} Activate your virtualenv $ workon MyBlog orC:UserDesktopProjects MyBlogToolsScripts activate 6
  • {{ LET’S GET STARTED }} Start a Python shell (MyBlog)$ python And type ‘import django’ >>> import django 7
  • {{ LET’S GET STARTED }}Back in the terminal (NOT in the python shell), type (one line): (MyBlog)$ django-admin.py startproject ZagrebWorkshop 8
  • {{ RUNSERVER }} On the terminal/console:(MyBlog)$ python manage.py runserver In a web browser, go to: http://localhost:8000 BAM it works. 9
  • {{ SETTINGS.PY }} Open up settings.py DATABASES = { default: { ENGINE: django.db.backends.sqlite3, NAME: MyBlog.db, USER: , PASSWORD: , HOST: , PORT: , } } 10
  • {{ SYNCDB }} Back on the terminal/console:(MyBlog)$ python manage.py syncdb and follow prompts. BAM your DB is set up. 11
  • {{ STARTAPP }} Back on the terminal/console:(MyBlog)$ python manage.py startapp MyBlog(MyBlog)$ cd MyBlog(MyBlog)$ ls OR(MyBlog)C:UserDesktop> dir BAM more files! 12
  • {{ MODELS.PY }} Open up models.pyfrom django.db import modelsclass Post(models.Model): title = models.CharField(max_length=60) body = models.TextField() created = models.DateTimeField(auto_now_add=True) def __unicode__(self): return self.title 13
  • {{ SETTINGS.PY }} Return to settings.py file.INSTALLED_APPS = ( django.contrib.auth, django.contrib.contenttypes, django.contrib.sessions, django.contrib.sites, django.contrib.messages, django.contrib.staticfiles, # Uncomment the next line to enable the admin: # django.contrib.admin, # Uncomment the next line to enable admin documentation: # django.contrib.admindocs, MyBlog,) 14
  • {{ SYNCDB }}Back on the terminal/console: (MyBlog)$ python manage.py syncdb again. Then do: (MyBlog)$ python manage.py shell Let’s play around a little. 15
  • {{ SETTINGS.PY }} Return to settings.py file.INSTALLED_APPS = ( django.contrib.auth, django.contrib.contenttypes, django.contrib.sessions, django.contrib.sites, django.contrib.messages, django.contrib.staticfiles, # Uncomment the next line to enable the admin: django.contrib.admin, # Uncomment the next line to enable admin documentation: # django.contrib.admindocs, MyBlog,) 16
  • {{ ADMIN }} Something is missing.Create MyBlog/admin.pyfrom django.contrib import adminfrom MyBlog.models import Postclass PostAdmin(admin.ModelAdmin): search_fields = [title]admin.site.register(Post, PostAdmin) 17
  • {{ ADMIN }}Back on the terminal/console:(MyBlog)$ python manage.py runserver In a web browser, go to: http://localhost:8000/admin woah. 18
  • {{ URLS }} Open urls.py And edit for the following:from django.conf.urls import patterns, include, urlfrom django.contrib import adminadmin.autodiscover()urlpatterns = patterns(, url(r^admin/, include(admin.site.urls)),) 19
  • {{ ADMIN }}Back on the terminal/console:(MyBlog)$ python manage.py runserver In a web browser, go to: http://localhost:8000/admin woah. 20
  • {{ URLS }} Now go to: http://localhost:8000Missing something... 21
  • {{ URLS }} Reopen urls.py And edit for the following:from django.conf.urls import patterns, include, urlfrom django.contrib import adminadmin.autodiscover()urlpatterns = patterns(, url(r^$, ‘MyBlog.views.home’, name=home), url(r^(d+)/$, ‘MyBlog.views.post’, name=post), url(r^admin/, include(admin.site.urls)),) 22
  • {{ ADMIN }}Back on the terminal/console:(MyBlog)$ python manage.py runserver In a web browser, go to: http://localhost:8000/ Hrmph. No Views. 23
  • {{ VIEWS }}Open views.py...And let’s write two views together. 24
  • {{ TEMPLATES }}Download http://l.ynn.me/SVaCxp & unzip/open the file. Move the “templates” folder to under the main “ZagrebWorkshop” directory. 25
  • {{ TEMPLATES }} Move the “static” folder to under the second“ZagrebWorkshop” directory. 26
  • {{ TEMPLATES }} Optional: open “ZagrebWorkshop/templates/blog/base.html” and edit for Author, Email, and/or Site Title 27
  • {{ TEMPLATES }}Optional: If you created a Disqus account, copy and paste your JavaScript code in:“ZagrebWorkshop/templates/blog/ post.html” 28
  • {{ DIRECTORIES }} !"" ZagrebWorkshop/ #"" MyBlog/ $   #"" __init__.py $   #"" admin.py $   #"" models.py $   #"" tests.py $   #"" views.py #"" ZagrebWorkshop/ $   #"" __init__.py $   #"" settings.py | !"" static/ $   #"" urls.py $   #"" wsgi.py #"" manage.py #"" MyBlog.db !"" templates/ !"" blog/ 29
  • {{ SETTINGS.PY }} Reopen settings.py and add these few bits.Refer to notes for specific line numbers.https://gist.github.com/4144268 30
  • {{ COLLECTSTATIC }}(MyBlog)$ python manage.py collectstatic 31
  • {{ TA-DA }} One last time(MyBlog)$ python manage.py runserver You should see your blog! 32
  • {{ SETUP HEROKU }} Make a venv snapshot(MyBlog)$ pip freeze > requirements.txt 33
  • {{ SETUP HEROKU }} Make a new file called “Procfile” and save it in your main “ZagrebWorkshop” directoryweb: python manage.py runserver 0.0.0.0:$PORT --noreload 34
  • {{ SETUP HEROKU }} $ git config --global user.name “Your Name”$ git config --global user.email “Your Email” $ git init $ git add . $ git commit -m “My Django Application” 35
  • {{ SETUP HEROKU }} (MyBlog) $ heroku login (MyBlog) $ heroku createFollow the steps for ‘heroku create’. Take note of the URL that Heroku gives you on your terminal (MyBlog) $ git push heroku master 36
  • {{ DEPLOY }} (MyBlog) $ git push heroku masterIt may take a couple of minutes. Then, navigate to that URL from previous step 37