Build website in_django

Preview:

DESCRIPTION

 

Citation preview

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