Portál AbcLinuxu, 10. května 2024 20:52


Dotaz: Apache s Djangem

7.2.2007 16:21 Devilkin | skóre: 17 | blog: domecek | Zlín
Apache s Djangem
Přečteno: 475×
Odpovědět | Admin
Už třetí den se mi nedaří rozchodit tuto kombinaci, proto bych rád poprosil někoho zkušenějšího, jestli neví jak na to.

Mám projekt na /var/www/localhost/htdocs/dws/ (bezpečnost zatim neřešim) a pokud ho spustim pomocí vývojového serveru (python manage.py runserver 192.168.1.1:8080 ) tak všechno chodí, jak má.

Pokud se ho ovšem pokusím pustit přes Apache, tak se na stránce objeví tohle:
Mod_python error: "PythonHandler django.core.handlers.modpython"

Traceback (most recent call last):

  File "/usr/lib/python2.4/site-packages/mod_python/apache.py", line 299, in HandlerDispatch
    result = object(req)

  File "/usr/lib/python2.4/site-packages/django/core/handlers/modpython.py", line 163, in handler
    return ModPythonHandler()(req)

  File "/usr/lib/python2.4/site-packages/django/core/handlers/modpython.py", line 131, in __call__
    self.load_middleware()

  File "/usr/lib/python2.4/site-packages/django/core/handlers/base.py", line 31, in load_middleware
    raise exceptions.ImproperlyConfigured, 'Error importing middleware %s: "%s"' % (mw_module, e)

ImproperlyConfigured: Error importing middleware django.contrib.sessions.middleware: "No module named dws"
V httpd.conf mám nasledující :
<Location "/dws/">
  SetHandler python-program
  PythonHandler django.core.handlers.modpython
  PythonPath "['/var/www/localhost/htdocs/dws'] + sys.path"
  SetEnv DJANGO_SETTINGS_MODULE settings
  PythonDebug On
</Location>>
Postupoval jsem podle tohoto návodu

Vážně už nevím, co dělám špatně :-(.

Předem děkuji za nakopnutí.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

12.2.2007 04:21 Devilkin | skóre: 17 | blog: domecek | Zlín
Rozbalit Rozbalit vše Re: Apache s Djangem
Odpovědět | | Sbalit | Link | Blokovat | Admin
Pokud upravím konfiguraci Apache takto:
<Location "/dws/">
  SetHandler python-program
  PythonHandler django.core.handlers.modpython
  PythonPath "['/var/www/localhost/htdocs/'] + sys.path"
  SetEnv DJANGO_SETTINGS_MODULE dws.settings
  PythonDebug On
</Location>
Zobrazí se Djangem formátovaná stránka "Page not found (404)".

Přesný text vypadá takto:

Page not found (404)
Request Method: 	GET
Request URL: 	http://localhost/dws/

Using the URLconf defined in dws.urls, Django tried these URL patterns, in this order:

   1. ^$
   2. ^admin/

The current URL, /dws/, didn't match any of these.

You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard 404 page.
Je mi jasné, že problém je někde v nastavení cest, ale opravdu už nevím, kde bych to měl upravit :-(

Nemá tu někdo funkční konfiguráky Djanga s Apache?

Předem děkuji
15.8.2007 21:21 Devilkin | skóre: 17 | blog: domecek | Zlín
Rozbalit Rozbalit vše Re: Apache s Djangem
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tak jsem si po půl roce zase začal hrát s Djangem a nechápu co mi nebylo jasné ;-).

Takže kdyby se někdo náhodou zasekl taky na takové hlouposti, tady je vysvětlení.

Cesty Apache musejí sedět s cestami projektu (urls.py). To znamená, že pokud něco vyvíjíte s pomocí webserveru dodávaném s Djangem a pak to chcete přesunout třeba na mujwebserver/prvni_pokus/prvni_aplikace, je nutné přidat do urls.py prvni_pokus.

Příklad.

Apache - (httpd.conf)
<Location "/prvni_pokus/">
  SetHandler python-program
  PythonHandler django.core.handlers.modpython
  PythonPath "['/home/django/'] + sys.path"
  SetEnv DJANGO_SETTINGS_MODULE prvni_pokus.settings
  PythonDebug On
</Location>
Django - (/home/django/prvni_pokus/urls.py)
from django.conf.urls.defaults import *

(r'^prvni_pokus/admin/', include('django.contrib.admin.urls'))
...
...
...
Není také od věci si nastavit správnou cestu na adresář media (css,img, ...) a zkopírovat tam madia pro admin prostředí Djanga. Přecejen s CSS je to hezčí ;-)

Apache - (httpd.conf)
Alias /media "/var/www/localhost/htdocs/djangosite/media"
Jo a ještě jsem se zasekl na češtině. Když jsem si procházel tutoriál nemohl jsem pochopit, přoč v Admin prostředí nemůžu vytvořit anketu česky (s interpunkcí). Hláška Djanga byla sice celkem jasná, ale pár minutek mi zabralo, než mi to docvalko.

Místo __str__ používat __unicode__ . Ani nechápu proč to v tom tutoríálu není s unicode.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.