if you guys want the source here it is: although if you just had emailed me to my mail account i might have read this :p i used pdf because it's sexy and colorful as opposed to the following.
from django.conf.urls.defaults import * urlpatterns = patterns('', # (regular exp, function, optional dictionary, optional name) # Doesn’t differentiate request method, all go to the same function (r'^articles/2003/$', 'news.views.special_case_2003'), # "/articles/2003" -> no match need "2003/" (r'^articles/(\d{4})/$', 'news.views.year_archive'), # ordering matters # "/articles/2003/" -> news.views.special_case_2003, not news.views.year_archive(2003) (r'^articles/special/(?P<year>\d{4})/$', 'news.views.year_archive'), # "/articles/special/2003" -> news.views.year_archive(request, year='2003') (r'^articles/(\d{4})/(\d{2})/$', 'news.views.month_archive'), (r'^articles/(\d{4})/(\d{2})/(\d+)/$', 'news.views.article_detail'), # "/articles/2003/03/3/" -> news.views.article_detail(request, '2003', '03', '3') ) urlpatterns += patterns('sports.views', # append like a list (r'^sports/2003/$', 'some_function'), # "/sports/2003/" -> sports.views.some_function(request) ) # Generic actions are useful if you are doing something generic such as: # by default {'extra_context':{}}, add more context into extras if necessary urlpatterns += patterns('django.views.generic.simple', (r'^page_new/(?P<id>\d+)/$', 'direct_to_template', {'template': 'page_detail.html'}),) urlpatterns += patterns('django.views.generic.simple', (r'^page/(?P<id>\d+)/$', 'redirect_to', {'url': '/page_new/% (id)s/'}},) urlpatterns += patterns('django.views.generic.list_detail', (r'^page/all/$', 'object_list', {'queryset': Pages.objects.all() }),) # default: {'paginate_by':'infinity' , 'page':'1', # 'template_name':'app/model_list.html' } urlpatterns += patterns('django.views.generic.list_detail', (r'^page/all/(?P<id>\d+)/$', 'object_detail', {'queryset': Pages.objects.all(), 'object_id':id }),) # default: {'paginate_by':'infinity' , 'page':'1', # 'template_name':'app/model_detail.html' } urlpatterns += patterns('django.views.generic.create_update', (r'^...$', 'create_object', {'model':SomeModel or 'form_class':SomeForm }),) # default: {'post_save_redirect':object.get_absolute_url(), 'login_required':False, # 'template_name':'app/model_form.html' } urlpatterns += patterns('django.views.generic.create_update', (r'^...$', 'update_object', {'model': / 'form_class':, 'object_id':SomeID }),) # default: {'post_save_redirect':object.get_absolute_url(), 'login_required':False, # 'template_name':'app/model_form.html' } urlpatterns += patterns('django.views.generic.create_update', (r'^...$', 'delete_object', {'model': / 'form_class':, 'object_id':SomeID }),) # default: {'post_save_redirect':object.get_absolute_url(), 'login_required':False, # 'template_name':'app/model_confirm_delete.html' } # Parents are good for subdividing the work urlpatterns += patterns('', # use include to add child url matchers: (r'^weblog/(?P<idName>\w+)/', include('mysite.app.url')), ) # in file app/url.py: from django.conf.urls.defaults import * urlpatterns = patterns('app.views', (r'^$', 'blog.index'), # "/weblog/me/" -> app.views.blog.index(request, idName='me') (r'^post/(?P<postIndex>\d+)$', 'post.show'), # "/weblog/me/12" -> app.views.post.show(request, idName='me', postIndex='12') (r'^details/$', 'blog.details', {'extraData', 'foo!'}) # "/weblog/details/" -> app.views.blog.details(request, idName='me', extraData='foo!') (r'^post/(?P<pid>\d+)/comment/(?P<cid>\d+)/$', 'post.show', {'gotoComment', 'true'}, "weblog-viewComment"), # "/weblog/post/1/comment/1/" -> app.views.blog.details(request, idName='me', pid='1', cid='1', gotoComment='true') # the template tag {% url weblog-viewComment pid=1,cid=1 %} returns "/ weblog/post/1/comment/1/" ) # often you will write one function which has a default parameter to save code: urlpatterns = patterns('app.views', (r'^$', 'blog.index'), (r'^/(?P<postIndex>\d+)/$', 'blog.index')) def index(request, postIndex='1') .... # often we want to find a url that will execute a function with some parameters # we would use {% url function args %} in a template. in code we would use: from django.core.urlresolvers import reverse reverse(viewname, urlconf=None, args=None, kwargs=None) def myview(request): return HttpResponseRedirect(reverse('weblog-viewComment', args='pid=1,cid=1')) # regular reference: # . any char # ^ start of string $ end of string # * 0 or more of preceding + 1 or more of preceding # ? 0 or 1 of preceding (?!..) matches when it doesnt match .. # *? 0 or more, minimal match +? 1 or more, minimal match # {m} exactly m of preceding {m,n} between m to n of preceding # [..] eg. [abc],[a-z],[0-9a-z] [^..] matches if doesn't match [..] # (..) groups what's inside (?=..) matches .. but doesn't consume it # \d [0-9] (decimal digit) \D [^0-9] (non-digit) # \w [a-zA-Z0-9_] (alphanumeric) \W [^a-zA-Z0-9_] (non- alphanumeric) # \s [ \t\n\r\f\v] (whitespace) \S [^ \t\n\r\f\v] (non- whitespace) # Request and Response Object def index(request, index='1') request.path # /weblog/me/ request.method # either 'GET', 'POST', 'HEAD', ... request.GET['someVarName'] # whatever it should be request.GET['someVarName', 'default'] # if it doesn't exist then default. also for POST request.POST['someVarName'] request.REQUEST['someName'] # searches GET then FILES request.COOKIES['attributeName'] request.FILES['someFilename'] # request.POST does not have files # includes methods: read(num_bytes=...), chunk() and attrs: file_name, file_size request.META['someMetaName'] # includes: CONTENT_LENGTH, CONTENT_TYPE, HTTP_ACCEPT_ENCODING, SERVER_PORT, # HTTP_ACCEPT_LANGUAGE, HTTP_HOST, HTTP_REFERER, HTTP_USER_AGENT, # QUERY_STRING, REMOTE_ADDR, REMOTE_HOST, REQUEST_METHOD, SERVER_NAME, request.user # object: django.contrib.auth.models.User request.get_full_path() # includes any stuff after the last directory / request.build_absolute_uri() # includes a http://www.. bit that is read from their side request.is_ajax() # major ajax libraries send a signal that a query is for ajax On Aug 26, 5:56 am, maeck <[EMAIL PROTECTED]> wrote: > I have printed this from scribd into a PDF and use it as such, no need > for login. > Works somewhat, cannot select the text from it (could have run some > text recognition on it), but expect to find the original code or pdf > somewhere soon (Google code maybe). > > maeck --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/django-users?hl=en -~----------~----~----~----~------~----~------~--~---