build website in_django
DESCRIPTION
TRANSCRIPT
BUILD WEBSITE IN DJANGO
WITH A SEARCH ENGINE IN THE END
DJANGO?
a Web development frameworkWritten in PythonOriginally used in a News SiteNow used in many place
FEATURES
It comes with
ORM Administration SiteDevelopment ToolsTemplatesForm validationAuthentication FrameworkComments FrameworkFeedsAnd many more
ENOUGH TALKING
LET GET TO WORK
LADIES AND GENTLEMEN
Start your project, by using the command django-admin startproject projectname
You should see the content in the new folder__init__.py manage.py settings.py urls.py
CONFIGURE IT A LITTLE
The settings is in settings.py we start with the databasefind the similar template in settings.py** show settings.pyhttp://gist.github.com/376201
A LITTLE MORE
here find the line in settings.pyfind the same similar in settings and change it accordingly** show template_dirshttp://gist.github.com/376203
PHEW.....
Now we can start working,
after we python manage.py startapp issues
Now we really can start workingbtw you should see the following
__init__.py models.py tests.py views.py
WHILE WE AT IT
Lets get a enable admin page in urls.pychange the part in settings.py**show settings.py
http://gist.github.com/376207
and urls.py**show urls.pyhttp://gist.github.com/376208
WHO WANT TO BE A MODEL?
model.py == database table (almost)copy into models.py**shows issues modelshttp://gist.github.com/376205
SETUP A APP
now save the models.py
add application in settings.py
this is just part of settings.py**show examplehttp://gist.github.com/376207
create in issue/admin.py**show admin.py
http://gist.github.com/376210
SYNC IT!!!!
Now we can create a database,
python manage.py syncdb
python mange.py runserver
**show admin page
FIRST SUBMIT A FORM
One cool aspect of django is you can automate form generation, free with validation!!!!
create this one in issue/forms.py** show form.py
http://gist.github.com/376290
NOW TO VIEW THE APPS
lets create django views
add the following**show add view**show item view**show list viewhttp://gist.github.com/376304
TEMPLATING
Django uses template to present to user, let start with a main template, and the template for app
** show base.htmlhttp://gist.github.com/376294** show add.htmlhttp://gist.github.com/376297** show view.htmlhttp://gist.github.com/376298** show list.htmlhttp://gist.github.com/376300
URL.PY
now lets create a url to point to the webappcreate this one** show issue/urls.pyhttp://gist.github.com/376310
modify from the template** show urls.pyhttp://gist.github.com/376311and demo
EXTRA!!!!
NOW A REVIEW OF HAYSTACK
FINDING NEEDLE IN HAYSTACK
Haystack is a search api for django, it support several backend, including solr, whoosh,
A LITTLE SETUP(AGAIN)
Let do a little setup
git clone http://github.com/toastdriven/django-haystack.git
**show changes in settings.pyhttp://gist.github.com/376659
**show search_indexhttp://gist.github.com/376662
TELL HAYSTACK WHICH NEEDLE
We create a search index
** show search indexhttp://gist.github.com/376668
** search document place on <template dir>/search/indexes/issue/issue_text.txthttp://gist.github.com/376672
NOW TELL SOLR
Create solr index, and run index
create a schema.xml for solrpython manage.py build_solr_schema > schema.xml
create search indexpython manage.py rebuild_index
NOW CREATE A SEARCH SITE
We just reuse the search view** show urls.pyadd (r'^search/',include("haystack.urls"))
and create a template** show search/search.htmlhttp://gist.github.com/376685
VOILA!!!
Now we have a basic search.
except haystack can do quite a lot, which is another story altogether