Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: [Python]Framework voor web programming  (gelezen 2376 keer)

Offline MKe

  • Lid
[Python]Framework voor web programming
« Gepost op: 2011/04/21, 08:44:21 »
Hoi,

Ik ben me wat aan het verdiepen in frameworks voor python. Er zijn er echt ontzettend veel. Lastig te kiezen, dus.
Wat ik wil gaan maken is een web front-end voor een database (MySQL). Gebruikers moeten hier data in kunnen zetten en ook gemakkelijk weer uit kunnen trekken. Het is voor een intra-net, dus gaat niet naar buiten (minder beveiligings risico's).
Wat is een aanrader wat betreft:
- snel te ontwikkelen
- laag drempelig (simpel) voor de ontwikkelaar (ik wil niet te veel energie steken in het leren van een nieuw framework)
- afhandeling van het database verkeer (ik wil me geen zorgen maken over mogelijk 2 gebruikers die tegelijk op de database aan het schrijven zijn)

Ik zag dat Django in de repo's van Ubuntu zit. Ik zie dat die met mod_python werkt. Kan dit ook met mod_wsgi? Ik hou niet zo van mod_python.

Offline Ronnie

  • Lid
    • ronnie.vd.c
Re: [Python]Framework voor web programming
« Reactie #1 Gepost op: 2011/04/21, 11:13:41 »
Django is een goede keus als python web framework. Ik werkt er zelf erg veel mee, en neemt erg veel taken van de developer over.

Of Django geschikt is voor dit project, ben ik niet zeker van. Django heeft zelf graag de controle de namen van de tabellen en rows in de database. Een bestaande database uitlezen zal wat moeilijker gaan en zul je hacks toe moeten passen. Als Django zelf de database aan mag maken, heb je meteen heel veel werk uithanden, omdat Django standaard een admin interface heeft, die de database kan bewerken.

Django werkt zowel met mod_python als met mod_wsgi, waarbij de laatste de voorkeur heeft.
http://docs.djangoproject.com/en/dev/howto/deployment/modwsgi/

De versie die in de repo zit is wel een redelijk oude versie. Wellicht voldoet deze wel voor jou applicatie

Mocht je niet willen dat 2 gebruikers tegelijk een item kunnen bewerken, kijk dan eens naar deze plugin:
http://stdbrouw.github.com/django-locking/

Verder ben ik vaak op #Ubuntu-nl-mwanzo op IRC aanwezig mocht je een snelle vraag hebben. Ook #django is een erg fijn kanaal om vragen te stellen.
Ben je ook blij dat Ubuntu zo toegankelijk en gratis is, en wil je graag net als ik iets terugdoen, kijk dan eens rond bij mwanzo, dé poort naar het bijdragen aan Ubuntu en haar gemeenschap!

Documentatie Terminal

Offline MKe

  • Lid
Re: [Python]Framework voor web programming
« Reactie #2 Gepost op: 2011/04/21, 20:39:20 »
Dank je Ronnie, ik denk dat ik Django maar eens ga proberen. Ik zal volgende week eens beginnen met de tutorial door te nemen, kijken hoe het werkt. Is er een reden waarom jij gekozen hebt voor Django en niet voor b.v. Pylons?

Offline Ronnie

  • Lid
    • ronnie.vd.c
Re: [Python]Framework voor web programming
« Reactie #3 Gepost op: 2011/04/22, 17:56:57 »
Er waren een aantal redenen waarom ik voor Django gekozen heb.

1. Snel te leren
2. Opzetten ontwikkel server is gemakkelijk
3. Wordt veel gebruikt binnen open source projecten (ook bij Ubuntu: loco.ubuntu.com, summit.ubuntu.com etc)
4. Een grote standaard bibliotheek en de vele beschikbare 3e partij plugins (ik weet niet of Pylons die misschien ook heeft)

Met Django kun je erg snel aan de slag, maar je merkt wel, dat wanneer je iets anders wil dan de standaard set, dat je vaak meer tijd kwijt bent dan je op het eerste instantie verwacht.



Ben je ook blij dat Ubuntu zo toegankelijk en gratis is, en wil je graag net als ik iets terugdoen, kijk dan eens rond bij mwanzo, dé poort naar het bijdragen aan Ubuntu en haar gemeenschap!

Documentatie Terminal

Offline MKe

  • Lid
Re: [Python]Framework voor web programming
« Reactie #4 Gepost op: 2011/04/28, 15:09:21 »
Hoi Ronnie,

Weet jij hoe ik binnen python-met-Django een many-to-many relatie kan vullen?

stel ik heb het volgende model:

class Dingen(models.Model):
    name=models.CharField(max_length=200)
    subjes=models.ManyToManyField('self')
Dus in python maak ik twee entries als volgt aan:
a=Dingen(name='hoi')
b=Dingen(name='Hallo')
a.save()
b.save()
Hoe leg ik nu de link tussen a en b?

edit:
Okay, ben erachter:
b.subjes=[a]
#nieuw toevoegen:
c=Dingen(name='Goedendag')
b.subjes.add(c)
« Laatst bewerkt op: 2011/04/28, 16:06:02 door MKe »
Mijn blokkendoos blog: http://mke21.wordpress.com/

Offline MKe

  • Lid
Re: [Python]Framework voor web programming
« Reactie #5 Gepost op: 2011/05/02, 20:49:06 »
Hoi Ronnie,

Geweldig spul dat Django. Je kunt er inderdaad heel snel dingen mee maken. Het is precies wat ik zocht.
Ik zag je niet op mwanzo, dus toch nog een vraagje:
Ik kan nergens vinden hoe ik kan filteren op een waarde tussen 2 getallen. Voor datum heb ik wel de __gt (groter dan) gevonden, maar dit lijkt niet te werken op integer velden. Weet jij hoe dit moet?

edit:
__gt blijkt wel te werken op integers. Bij mij werkte het niet vanwege een andere bug in mijn programma.

Als je een Integerveld (stel dat je het 'getal' noemt) hebt in je model, kun je daarop filteren door:
getal__gt=5 #geeft alle records waar veld getal groter is dan 5
getal__st=5 #geeft alle records waar het getal kleiner is dan 5
getal__gte=5 #geeft alle recods waar getal hoger of gelijk is aan 5
getal__ste=5 #geeft alle records waar getal kleiner of gelijk is aan 5

« Laatst bewerkt op: 2011/05/04, 12:55:31 door MKe »
Mijn blokkendoos blog: http://mke21.wordpress.com/