Quick Start Python/Django Siehe auch http://www.python-kurs.eu/python3_kurs.php https://docs.djangoproject.com/en/1.6/intro/tutorial 01/ Installation https://www.python.org/downloads/ https://www.djangoproject.com/download/ Python Konsole Beenden mit Ctrl-D oder Funktion quit() Operatoren, fast wie in Java Operator Bezeichnung Beispiel +, Addition, Subtraktion 10 -3 *, % Multiplikation, Division, Rest / Division : >>> 10 / 3 =3.333333 ab Python 3 ~x Bitweises Not ** Exponentiation or, and, not Boolsche Operatoren in "Element von" <, <=, >, >=, !=, == Die üblichen Vergleichsoperatoren |, &, ^ Bitweises Oder, Bitweises Und, Bitweises XOR <<, >> Shiftoperatoren Listen Mengen und Dictionaries Import aus Dateien und Moduln http://www.python-kurs.eu/python3_kurs.php Funktionen Klassen und Objekte >>> >>> class Roboter: ... pass ... >>> type(Roboter) <class 'type'> >>> print(Roboter()) <__main__.Roboter object at 0x004AB650> >>> r=Roboter() >>> r.name="Marvin" >>> r.name 'Marvin' >>> >>> class Roboter: ... def __init__(self,name,baujahr): ... self.name=name ... self.baujahr=baujahr ... def setName(self, name): ... self.name=name ... def setBaujahr(self,baujahr): ... self.baujahr=baujahr ... def getName(self): ... return self.name ... def getBaujahr(self): ... return self.baujahr Vererbung >>> class Robby(Roboter): ... pass ... >>> m=Robby("marvin",1984) >>> m.getName() 'marvin' >>> Django • Erst Python installieren! • Auf Versionsunterschiede achten (hier Django 1.6) • Einrichten einer Website mittels Python-Scripts: • Nachfolgendes Beispiel stamm von: • https://docs.djangoproject.com/en/1.6/intro/tutorial01/ • Generierung einer Datenbank mittels O/R Mapping • Django generiert SQL für Datenbankgenerierung • Entwicklerdatenbank SQLite in Python ist dabei Django Projekt anlegen django-admin.py startproject mysite manage.py runserver manage.py startapp polls Verzeichnisstruktur mysite/ manage.py mysite/ __init__.py settings.py urls.py wsgi.py Django O/R Mapping from django.db import models class Poll(models.Model): question = models.CharField(max_length=200) pub_date = models.DateTimeField('date published') class Choice(models.Model): poll = models.ForeignKey(Poll) choice_text = models.CharField(max_length=200) votes = models.IntegerField(default=0) mysite/setting.py ergänzen INSTALLED_APPS = ( 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'polls', ) manage.py sql polls BEGIN; CREATE TABLE "polls_poll" ( "id" integer NOT NULL PRIMARY KEY, "question" varchar(200) NOT NULL, "pub_date" datetime NOT NULL ); CREATE TABLE "polls_choice" ( "id" integer NOT NULL PRIMARY KEY, "poll_id" integer NOT NULL REFERENCES "polls_poll" ("id"), "choice_text" varchar(200) NOT NULL, "votes" integer NOT NULL ); COMMIT; manage.py syncdb manage.py shell >>> from polls.models import Poll, Datenbank leer >>> Poll.objects.all() [] >>> p = Poll(question="What's new?", Neues Objekt per Konstruktor pub_date=timezone.now()) >>> p.save() >>> p.id 1 >>> p.question "What's new?" Speichern Daten ändern >>> p.question "What's new?" >>> p.pub_date datetime.datetime(2012, 2, 26, 13, 0, 0, 775217, tzinfo=<UTC>) >>> p.question = "What's up?" >>> p.save() # objects.all() displays all the polls in the database. >>> Poll.objects.all() Ein schöneres „toString“ wäre [<Poll: Poll object>] gut