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