Quick Start Python/Django
Siehe auch http://www.python-kurs.eu/python3_kurs.php
https://docs.djangoproject.com/en/1.6/intro/tutorial01/
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
mysite/ manage.py mysite/ __init__.py settings.py urls.py wsgi.py
Verzeichnisstruktur
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, >>> Poll.objects.all() [] >>> p = Poll(question="What's new?", pub_date=timezone.now()) >>> p.save() >>> p.id 1 >>> p.question "What's new?"
Datenbank leer
Neues Objekt per Konstruktor
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() [<Poll: Poll object>] Ein schöneres „toString“ wäre
gut