Startschwierigkeiten mit Django

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
burli
User
Beiträge: 1156
Registriert: Dienstag 9. März 2004, 18:22

Hi, ich will/muss eine Webseite programmieren. Da ich Python Fan bin würde ich das gern mit Python und Django realisieren. Aber ich komme nicht so richtig in die Gänge.

Um es mal kurz zu umreißen was als Endergebnis rauskommen soll: ich möchte einen neuen Webshop für meine Firma programmieren mit Warengrupen, Warenkorb, unterschiedliche Artikelübersichten usw. Das ganze soll in ein klassisches dreispaltiges Layout mit Footer und Header. Das Layout (HTML/CSS) selbst möchte ich mit Yaml erstellen (bei Django gibt es eine pyyaml.py, hat das was damit zu tun?)

Ich will jetzt nicht alles auf einmal machen und ich will auch nicht nächste Woche fertig werden, aber ich brauche einen Anfang um mich in das Thema reinzufinden. Das Django Book hab ich schon zum Teil gelesen, aber damit tu ich mich schwer, das openbook von Galileo kratzt nur an der Oberfläche.

Es geht eigentlich schon los mit der Installation beim Provider bzw auf meinem lokalen Webserver. Aus PyLucid bin ich noch nicht schlau geworden. Bisher konnte ich nur mit dem eingebauten Testserver arbeiten. Ich habe mir bei meinem Provider gerade eine Subdomain zum Testen angelegt und kopiere gerade das /django Verzeichnis dort hin.

Jetzt die ersten meiner vielen Fragen:
1. wie richtige ich jetzt Django bei meinem Provider ein so das es läuft?
2. wie bekomme ich das, was ich auf dem Testserver entwickelt habe, beim Provider zum laufen?
burli
User
Beiträge: 1156
Registriert: Dienstag 9. März 2004, 18:22

Ok, wie ich beim Provider die Datenbank anlegen kann weiß ich jetzt, aber ich konnte leider noch nicht rausfinden wie ich django beim Provider einrichte. Ich weiß das ich die cgi.py benötige und eine .htaccess mit ein paar Einträgen anlegen muss. Ich hab aber noch nicht verstanden wie das ganze eingerichtet wird.

Außerdem würde ich gerne mal ein super Simpel Projekt wie zb das aus dem Galileo Openbook auf den Providerserver portieren. Das würde mir schon weiterhelfen
Keanuf
User
Beiträge: 39
Registriert: Freitag 3. Oktober 2003, 00:03
Kontaktdaten:

Hallo Burli, also ich hab keine Ahnung was denn dein Provider anbietet, aber das django Framework muss da schon installiert sein und das DB Modul in der richtigen Version für deine DB.

Dann müsstest du auch in die Apache configs eingreifen, das lässt nicht jeder so zu.

Ich kenn leider auch keine Anbieter, aber die soll es geben.
Eigentlich wollte ich wegen dem WEbshop nur einen Link hier einfügen

http://www.satchmoproject.com/
Eventuell kannst du darauf aufbauen.

Gruss
burli
User
Beiträge: 1156
Registriert: Dienstag 9. März 2004, 18:22

Hi Keanuf,
nein, man kann Django auch als CGI laufen lassen und alles was man Apache mitteilen muss kann man über .htaccess machen. Ich werd nur nicht schlau daraus wie das geht und wie ich nachher ein lauffähiges Projekt auf den Server portiere
Keanuf
User
Beiträge: 39
Registriert: Freitag 3. Oktober 2003, 00:03
Kontaktdaten:

Hallo Burli,

Also das ist was ich so gefunden habe,
eventuell hilft dir das.

http://code.djangoproject.com/wiki/ServerArrangements

:wink:
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Außerdem kann `wsgiref` auch CGI, also könnte man es auch auf diesem Weg versuchen. Ich würde mir aber an dieser Stelle einen vernünftigen Hoster suchen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Nachtrag: Das pyyaml.py von Django bezieht sich auf Yet Another Markup Language (als Alternative zu XML), nicht Yet Another Multicolumn Layout. Der Begriff ist unglücklicherweise überladen.

Stefan
burli
User
Beiträge: 1156
Registriert: Dienstag 9. März 2004, 18:22

Eigentlich möchte ich den Hoster nicht schon wieder wechseln weil mein derzeitiger Hoster eigentlich schon ganz ok ist. Unbegrenzt Traffic für 8€, der Spam Filter funktioniert, der Support sehr gut... und ich brauche ein SSL Zertifikat

Außerdem besteht bei jedem Wechsel die Gefahr das beim kleinsten Fehler die Domain gegrabbt wird. Hat ein Bekannter mal erleben dürfen.

Ganz ehrlich, da verzichte ich lieber auf Django oder mach es doch in PHP.

Python läuft ja, und ich würde es gerne über die CGI Schiene probieren, aber ich kriege die Einrichtung einfach nicht auf die Reihe weil ich nicht durchblicke wie Jens das bei PyLucid gemacht hat und aus dem Blog von Jason McBrayer auch nicht richtig schlau werde. Bevor ich Django komplett in die Tonne werfe würde ich zumindest gern mal sehen wie die Performance aussieht. Wenn die bei einfachen Seiten schon mieserabel ist brauch ich nicht weitermachen und ich suche eine Alternative
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

burli hat geschrieben:Außerdem besteht bei jedem Wechsel die Gefahr das beim kleinsten Fehler die Domain gegrabbt wird. Hat ein Bekannter mal erleben dürfen.
Die Domain brauchst du ja nicht umziehen. Ich habe alle Domains bei dedizierten Domain-Hostern.

Normalwerweise könnte man an wsgirefs CGIHandler eine WSGI-Applikation anschließen. Theoretisch sollte da mit ``django.core.handlers.wsgi.WSGIHandler`` etwas zu machen sein.

Ohne das jetzt getestet zu haben:

Code: Alles auswählen

import os, sys
sys.path.append('/usr/local/django')
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'

from django.core.handlers.wsgi import WSGIHandler
from wsgiref.handlers import CGIHandler

app = WSGIHandler()
CGIHandler().run(app)
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
burli
User
Beiträge: 1156
Registriert: Dienstag 9. März 2004, 18:22

Also gut, ich denke ich werde mir einen VirtualHost oder etwas ähnliches bei einem anderen Provider mieten wo ich selbst installieren kann was ich brauche. Hab bei meinem Provider gerade angerufen ob die meine Domain dann auch weiterleiten
Keanuf
User
Beiträge: 39
Registriert: Freitag 3. Oktober 2003, 00:03
Kontaktdaten:

Hallo burli, wegen der Domain,
also da würde ich diese,
wie schon hier geschrieben von Leonidas,
bei einem Domain Anbieter hinterlegen, hier kannst du dann die Domain
an die jeweilige IP adresse von deinem WebspaceAnbieter binden.
(Den DNS Eintrag machen)

z.B. bei http://www.regfish.de/
die domain ablegen und bei
einem Anbieter von VPS, RootServer oder Webspace.
Den Webspace nutzen.

Dann bist du flexibler, was die Auswahl deiner
webspace Anbieter betrifft. :wink:
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

burli hat geschrieben:Also gut, ich denke ich werde mir einen VirtualHost oder etwas ähnliches bei einem anderen Provider mieten wo ich selbst installieren kann was ich brauche. Hab bei meinem Provider gerade angerufen ob die meine Domain dann auch weiterleiten
Ich würde dir ja Pyhosting empfehlen, falls du nicht unbedingt alles selbst administrieren willst. Ich habe da eine Seite gehostet, die auf Werkzeug aufbaut.

Die Domain ist übrigens bei Regfish, ja.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
burli
User
Beiträge: 1156
Registriert: Dienstag 9. März 2004, 18:22

Nein, ich werde mir bei vollmar.net einen vserver holen. Da kann ist selbst bestimmen was Sache ist. Der administrative Aufwand wird kaum höher sein als bei meinen Rechnern hier.

Und da ich das jetzt beschlossen habe und ich hier lokal ähnliche Voraussetzungen habe werde ich hier erstmal üben. Deshalb jetzt noch eine Frage:

Wie richtet man Python auf dem Apache am besten ein? mod_python? CGI? FastCGI?
burli
User
Beiträge: 1156
Registriert: Dienstag 9. März 2004, 18:22

Heureka, nach stundenlangem Gefrickel habe ich meinen Apache endlich dazu gebracht Python auszuführen
einfacher mod_python Test

GATEWAY_INTERFACE: CGI/1.1

OK, running as CGI.

Note: Can't import mod_python module: No module named mod_python
FastCGI Environment
DOCUMENT_ROOT /home/burli/web
GATEWAY_INTERFACE CGI/1.1
HTTP_ACCEPT text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
HTTP_ACCEPT_CHARSET ISO-8859-15,utf-8;q=0.7,*;q=0.7
HTTP_ACCEPT_ENCODING gzip,deflate
HTTP_ACCEPT_LANGUAGE de-de,de;q=0.8,en-us;q=0.5,en;q=0.3
HTTP_CONNECTION keep-alive
HTTP_HOST 192.168.1.xxx
HTTP_KEEP_ALIVE 300
HTTP_USER_AGENT Mozilla/5.0 (X11; U; Linux i686; de; rv:1.8.1.12) Gecko/20080207 Ubuntu/7.10 (gutsy) Firefox/2.0.0.12
PATH /usr/local/bin:/usr/bin:/bin
PATH_INFO
QUERY_STRING
REMOTE_ADDR 192.168.1.xxx
REMOTE_PORT 55790
REQUEST_METHOD GET
REQUEST_URI /dispatcher.fcgi
SCRIPT_FILENAME /home/burli/web/dispatcher.fcgi
SCRIPT_NAME /dispatcher.fcgi
SERVER_ADDR 192.168.1.xxx
SERVER_ADMIN webmaster@xyz.de
SERVER_NAME 192.168.1.xxx
SERVER_PORT 80
SERVER_PROTOCOL HTTP/1.1
SERVER_SIGNATURE
SERVER_SOFTWARE Apache/2.2.4 (Ubuntu) mod_fastcgi/2.4.2 PHP/5.2.3-1ubuntu6.3
Als nächstes werde ich Django installieren. Wie das dann nachher aber laufen soll weiß ich noch nicht. Vielleicht kann da ja schonmal jemand weiterhelfen?
burli
User
Beiträge: 1156
Registriert: Dienstag 9. März 2004, 18:22

ES LÄUFT. Ich krieg nen gleich nen Anfall, aber es läuft Bild
audax
User
Beiträge: 830
Registriert: Mittwoch 19. Dezember 2007, 10:38

Ich kann übrigens die Kombination lighttpd mit fastcgi empfehlen, läuft auf meinem Vserver einfach grandios.
burli
User
Beiträge: 1156
Registriert: Dienstag 9. März 2004, 18:22

audax hat geschrieben:Ich kann übrigens die Kombination lighttpd mit fastcgi empfehlen, läuft auf meinem Vserver einfach grandios.
Mag sein das es funktioniert, vielleicht sogar besser als meins, aber ich habe ein Ziel: möglichst nicht zu viele unterschiedliche Sachen anfangen und lernen müssen sondern auf ein paar wenige konzentrieren. Und da ich bei meinem Provider, an dem ich weiterhin festhalte, nunmal an Apache gebunden bin bleibe ich auch auf anderen Rechnern dabei.

Deshalb möchte ich nach Möglichkeit auch nur noch Python programmieren, sowohl Desktop Applikationen als auch für's Web. Es reicht schon das ganze Drumherum wie Qt, HTTP, CSS, Django usw

So, nachdem ich es tatsächlich geschafft habe Django zur Mitarbeit zu bewegen werd ich mal loslegen und versuchen damit etwas zu zaubern
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

burli hat geschrieben:Wie richtet man Python auf dem Apache am besten ein? mod_python? CGI? FastCGI?
mod_fcgi oder mod_wsgi.

@audax: ich fand Lighty nicht so besonders toll. Seit der Rückmigration auf Apache mit seiner irgendwie oftmals bescheidenen FastCGI-Unterstützung läuft das jetzt meiner Meinung nach runder. Außerdem ist die Konfiguration doch etwas einfacher.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
burli
User
Beiträge: 1156
Registriert: Dienstag 9. März 2004, 18:22

@Leonidas: ja, und zusätzlich noch das Paket python-flup

Aber eine Frage habe ich noch und zwar zu dem Media Pfad. Den hab ich nämlich noch nicht eingerichtet.

Hier wird u.a. ein Alias für ein Media Verzeichnis angelegt
<VirtualHost 12.34.56.78>
ServerName example.com
DocumentRoot /home/user/public_html
Alias /media /home/user/python/django/contrib/admin/media
RewriteEngine On
RewriteRule ^/(media.*)$ /$1 [QSA,L,PT]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^/(.*)$ /mysite.fcgi/$1 [QSA,L]
</VirtualHost>
Das habe ich bei mir noch nicht gemacht, also wird es in absehbarer Zeit da wohl mal zu Problemen kommen. Was befindet sich in diesem Media Verzeichnis? Das hab ich noch nicht so richtig rausgefunden
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

burli hat geschrieben:Was befindet sich in diesem Media Verzeichnis? Das hab ich noch nicht so richtig rausgefunden
Alles was der Webserver statisch ausliefern soll. Django kümmert sich ja nur (zu recht) um dynamischen Content, den Rest erledigt der Webserver besser.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten