django + Apache + URL
Verfasst: Donnerstag 7. September 2006, 19:20
Hallo Leute,
da es keinen Django Forum gibt, muss ich meine Frage wohl hier los werden... ist etwas kompliziert, ich hoffe ich kann sie hier erlaeutern:
System:
ich als Neueinsteiger,
Python 2.4
Django 0.95
Apache 2.0.59
Hab auch auch schon n kleines Proggi geschrieben mit Django, klappt mit dem eigenen kleinen Server auch sehr gut, jetzt will ich dat ganze mal in Apache integrieren...
Mod_Python funzt aufm Apache wunderbar, dann habe ich noch wie in der Doku in die apache conf geschrieben:
So, ich könnte natürlich meine urls.py so anpassen, dass man im Apache mit http://localhost/mysite/proggi/ zum Proggi zukommen:
deshalb frage in die Runde:
- gibts globale Variable die ich auch in Templates nutzen kann?
- gibts URL Funktionen die ich in Templates nutzen kann?
- wie kann man das Problem noch lösen?
Ich hoffe das Problem ist verständlich erklärt und dass mir jemand mal mit ner Lösung helfen kann...
Gruss
KingKong
da es keinen Django Forum gibt, muss ich meine Frage wohl hier los werden... ist etwas kompliziert, ich hoffe ich kann sie hier erlaeutern:
System:
ich als Neueinsteiger,
Python 2.4
Django 0.95
Apache 2.0.59
Hab auch auch schon n kleines Proggi geschrieben mit Django, klappt mit dem eigenen kleinen Server auch sehr gut, jetzt will ich dat ganze mal in Apache integrieren...
Mod_Python funzt aufm Apache wunderbar, dann habe ich noch wie in der Doku in die apache conf geschrieben:
in der urls.py im Django Projectordner habe ich dann :<Location "/mysite/">
SetHandler python-program
PythonPath "['d:/django'] + sys.path"
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE myproject.settings
PythonDebug On
</Location>
Mit dem Python Entwicklungsserver würde ich also http://localhost:8000/proggi aufrufen um zum Proggi zu kommen. Aber im Apache muss ich http://localhost/mysite/ aufrufen um zum Projektordner zukommen, und dann stimmen die URLs fuer die in der urls.py definierten Pattern nicht mehr...urlpatterns = patterns('myproject.proggi.views',
(r'^proggi/$','index'),
(r'^proggi/(?P<id>\d+)/$','detail'),
(r'^proggi/(?P<id>\d+)/write/$','write'),
(r'^proggi/(?P<id>\d+)/read/$','read'),
(r'^/admin/', include('django.contrib.admin.urls')),
)
So, ich könnte natürlich meine urls.py so anpassen, dass man im Apache mit http://localhost/mysite/proggi/ zum Proggi zukommen:
aber dann wäre es sehr unflexible, weil ich dann in den Templates z.B bei <Form Action=""> statt /proggi/id/write/ => /mysite/proggi/id/write/ eingeben muss, und sollte sich mysite mal ändern, müsste ich alle Templates mit verändern...urlpatterns = patterns('myproject.proggi.views',
(r'^mysite/proggi/$','index'),
(r'^mysite/proggi/(?P<id>\d+)/$','detail'),
(r'^mysite/proggi/(?P<id>\d+)/write/$','write'),
(r'^mysite/proggi/(?P<id>\d+)/read/$','read'),
(r'^/admin/', include('django.contrib.admin.urls')),
)
deshalb frage in die Runde:
- gibts globale Variable die ich auch in Templates nutzen kann?
- gibts URL Funktionen die ich in Templates nutzen kann?
- wie kann man das Problem noch lösen?
Ich hoffe das Problem ist verständlich erklärt und dass mir jemand mal mit ner Lösung helfen kann...
Gruss
KingKong