Dedicated Server
Sending Request…

Sorry, but there was a problem saving your changes.

Cancel

Read+Write access

Dismiss Octotip: You've activated the file finder by pressing t Start typing to filter the file list. Use ↑ and ↓ to navigate, enter to view files.

  name
No matching files

Jump to Line

Latest commit to the master branch

Very basic template support - after umming and aahing for months, her… …

…e's the simplest thing that could possibly work. See example_template.py for an example.
commit 953eb33390
[image]simonw authored July 03, 2009
name age message
readme.txt
djng
====
(pronounced "djing", with a mostly-silent "d")

Blog entry: http://simonwillison.net/2009/May/19/djng/
Mailing list: http://groups.google.com/group/djng

djng is a micro-framework that depends on a macro-framework (Django).

My definition of a micro-framework: something that lets you create an entire
Python web application in a single module:

    import djng
    
    def index(request):
        return djng.Response('Hello, world')
    
    if __name__ == '__main__':
        djng.serve(index, '0.0.0.0', 8888)

Or if you want hello and goodbye URLs, and a custom 404 page:

    import djng

    app = djng.ErrorWrapper(
        djng.Router(
            (r'^hello$', lambda request: djng.Response('Hello, world')),
            (r'^goodbye$', lambda request: djng.Response('Goodbye, world')),
        ),
        custom_404 = lambda request: djng.Response('404 error', status=404),
        custom_500 = lambda request: djng.Response('500 error', status=500)
    )
    
    if __name__ == '__main__':
        djng.serve(app, '0.0.0.0', 8888)

Under the hood, djng will re-use large amounts of functionality from Django,
while re-imagining various aspects of the framework. A djng request object is
a Django HttpRequest object; a djng response object is a Django HttpResponse.
Django's template language and ORM will be available. Ideally, Django code
will run almost entirely unmodified under djng, and vice versa.

Services, not Settings
======================

I dislike Django's settings.py file - I often find I want to reconfigure
settings at run-time, and I'm not comfortable with having arbitrary settings
for so many different aspects of the framework.

djng experiments with /services/ in place of settings. Services are bits of
shared functionality that djng makes available to applications - for example,
caching, templating, ORM-ing and mail-sending.

Most of the stuff that Django sets up in settings.py will in djng be set up by
configuring services. These services will be designed to be reconfigured at
run-time, using a mechanism similar to Django middleware.

Some things that live in settings.py that really don't belong there -
middleware for example. These will generally be constructed by composing
together a djng application in code.

I'm still figuring out how the syntax for services should work.


[image]

Keyboard Shortcuts (see all)

Site wide shortcuts

s
Focus site search
?
Bring up this help dialog

Commit list

j
Move selection down
k
Move selection up
c or o or enter
Open commit
y
Expand URL to its canonical form

Pull request list

j
Move selection down
k
Move selection up
o or enter
Open issue

Issues

j
Move selection down
k
Move selection up
x
Toggle selection
o or enter
Open issue
I
Mark selection as read
U
Mark selection as unread
e
Close selection
y
Remove selection from view
c
Create issue
l
Create label
i
Back to inbox
u
Back to issues
/
Focus issues search

Issues Dashboard

j
Move selection down
k
Move selection up
o or enter
Open issue

Network Graph

↠or h
Scroll left
→ or l
Scroll right
↑ or k
Scroll up
↓ or j
Scroll down
t
Toggle visibility of head labels
shift ↠or shift h
Scroll all the way left
shift → or shift l
Scroll all the way right
shift ↑ or shift k
Scroll all the way up
shift ↓ or shift j
Scroll all the way down

Source Code Browsing

t
Activates the file finder
l
Jump to line
w
Switch branch/tag
y
Expand URL to its canonical form

Markdown Cheat Sheet

Format Text

Headers

# This is an <h1> tag
## This is an <h2> tag
###### This is an <h6> tag

Text styles

*This text will be italic*
_This will also be italic_
**This text will be bold**
__This will also be bold__

*You **can** combine them*

Lists

Unordered

* Item 1
* Item 2
  * Item 2a
  * Item 2b

Ordered

1. Item 1
2. Item 2
3. Item 3
   * Item 3a
   * Item 3b

Miscellaneous

Images

![GitHub Logo](/images/logo.png)
Format: ![Alt Text](url)

Links

http://github.com - automatic!
[GitHub](http://github.com)

Blockquotes

As Kanye West said:

> We're living the future so
> the present is our past.

Code Examples in Markdown

Syntax highlighting with GFM

```javascript
function fancyAlert(arg) {
  if(arg) {
    $.facebox({div:'#foo'})
  }
}
```

Or, indent your code 4 spaces

Here is a Python code example
without syntax highlighting:

    def foo:
      if not bar:
        return true

Inline code for comments

I think you should use an
`<addr>` element here instead.

Something went wrong with that request. Please try again. Dismiss


You are viewing a mobilized version of this site...
View original page here

Mobilized by Mowser Mowser