AWT2 - AD11. 2. Installera virtualenv och virtualenvwrapper- win: I en terminal, skriv: pip install virtualenvwrapper virtualenvwrapper



Relevanta dokument
INSTALLATION AV KLIENT

INSTALLATION AV VITEC MÄKLARSYSTEM

Inledning LAMP Perl Python.

Övning 1. Datateknik A, Java I, 5 poäng. Att ladda hem och installera Java Att skriva ditt första Javaprogram Att kompilera och exekvera ditt program

HIGs Remote Desktop Service med Linux

Innehåll. Dokumentet gäller från och med version

TDP003 Projekt: Egna datormiljön

AVCAD 4.0 för Windows

Uppdateringsguide v4 SR-3

Att bygga enkel webbapplikation i Docker

Föreläsning 3. Programmering, C och programmeringsmiljö

Instruktion för användande av Citrix MetaFrame

Byggsektorns Miljöberäkningsverktyg Användarmanual

Administrationsmanual ImageBank 2

Flytt av. Vitec Mäklarsystem

Installationsguide ELCAD 7.10

LAJKA-GUIDE. Så kör du. Windows på din Mac. 7 Fler spel och program 7 Enklare än Bootcamp 7 Körs direkt i OSX 7 Helt gratis

IT-körkort för språklärare. Modul 3: Ljud, del 1

Installation av atmel Studio på mac / linux

Författare Version Datum. Visi System AB

Installationsanvisning för Su Officemallar 2011 För Mac Word och PowerPoint

Manuell installation av SQL Server 2008 R2 Express för SSF Timing

Om inte denna rekommendation efterföljs kan vi tyvärr inte ge några garantier för att vi kan supportera de problem som då kan uppstå.

INSTALLATIONSGUIDE. Design Collaboration Suite

LATHUND INSTALLATIONSANVISNINGAR PROJEKTSTRUKTUR 1 SAMMANFATTNING FUNKTIONER I INSTALLATIONSPAKET TEKNISK PLATTFORM...

Uppdateringsguide v6.1

Installation/uppgradering av Agfa IMPAX program för remittenter

ParaGå-guide -kommunala utförare

Installation och konfiguration av klientprogramvara 2c8 Modeling Tool

Instruktion för installation av etikettskrivare 2.31

Om inte denna rekommendation efterföljs kan vi tyvärr inte ge några garantier för att vi kan supportera de problem som då kan uppstå.

Skapa din egen MediaWiki

Manuell installation av SQL Server 2008 R2 Express SP2 fo r SSF Timing

Installationsanvisningar VISI Klient

Innehåll. 1 Dokumentbeskrivning 3. 2 Användarinformation 3. 3 Installations anvisning Starta upp enheten 5

Visma Proceedo. Att logga in - Manual. Version 1.3 /

Lathund för Styret (version 1.0)

JobOffice SQL databas på server

Översikt. Installation av EasyPHP 1. Ladda ner från Jag använder Release Installera EasyPHP.

Din guide till. Klientinstallation MS Driftservice

Övning 1: Skapa virtuell maskin för utveckling.

Arbetsuppgift 1: På virtuell maskin med Ubuntuserver, skapa katalog och skapa Dockerfile. Skapa ny katalog i din hemmakatalog, med namnet webbserver.

Skydda din Dropbox med säker kryptering!

Arbetshäfte Office 365 en första introduktion

BaraTrav Prenumeration och Installation Version 1.3.4

Installationsanvisningar VisiMIX. Ansvarig: Visi System AB Version: 2.2 Datum: Mottagare: Visi MIX kund

Instruktioner för uppdatering från Ethiris 4.10 till 5.x

Vi visar i denna guide hur man kommer igång med sin nychippade Xbox360. När vi skriver spel i denna guide så menar vi era JTAG/RGH preparerade spel.

Installation av StruSofts låne-licensserver (nätverkslicens)

INNEHÅLLS FÖRTECKNING

Vid problem med programmet kontakta alltid C/W Cadware AB på telefon

Så enkelt byter du Windows mot Zorin

Så delar du filer. utan att bli övervakad LAJKA-GUIDE

Handledning för installation och komma igång med Joomla

Lathund - webbsidor och filer

INSTALLATION AV KLIENT

LABBINTRODUKTION. Laboranter: Kurs: - Sonny Johansson, Sigurd Israelsson. Utskriftsdatum:

Instruktion för installation av etikettskrivare 2.27

Innehållsförteckning ADSync Windows Azure Active Directory ADSynC- Installation Konfigurera ADSync... 4

Scala Doc SQL Installation

Datorlaboration 0, Programmering i C++ (EDA623)

Filimport till Norstedts Byrå

Trimble Communication Network Release notes Page 1

Installationsanvisningar HogiaLön Plus

Manual Komma igång med Softphone-klient

Uppdaterad: Lathund. Anslagstavlan

Hemsida. Lathund för medlemsföreningar. Funktioner för medlemsföreningar på hemsidan. Syfte med medlemsföreningens sidor

JAWS Nätverksauktorisering

Hur du installerar Open Broadcaster Software (OBS) fo r HD-sa ndning

1. Hur öppnar jag Polisens blanketter / formulär, trycksaker och annat som är i PDF-format?

FLEX Personalsystem. Uppdateringsanvisning

Installation xvis besökssystem, Koncern

Installationsanvisning fr o m version

Komma igång med OneD. Allt på en plats

ARX på Windows Vista, Windows 7 eller Windows 2008 server

Lathund Blanketthotell Komma igång

Datatal Flexi Presentity

LICENSAKTIVERINGSGUIDE. Design Collaboration Suite

Användarhantering Windows 7 I denna laboration kommer vi att skapa nya användare och grupper och titta på hur man hantera dessa.

Instruktion: Trådlöst nätverk för privata enheter

Instruktion: Trådlöst utbildningsnät orebro-utbildning

Referenshanteringsprogrammet

Övning: Arbeta med Azure Explorer

Version 1.8.7A. Tidrapportering med ctimesheet

ANVÄNDARMANUAL, INTERAXO

Installera din WordPress med 9 enkla steg

Inledande programmering med C# (1DV402) Ditt första C#-program med Visual Studio

Öppna App Store på din ios enhet, och sök efter Grid Player. Klicka på Install och skriv in ditt Apple (itunes) lösenord om det efterfrågas.

Manual - Storegate Team

Administrationsmanual ImageBank 2

Alla rättigheter till materialet reserverade Easec

Inledning. Översikt Inledning. Parallell

Kom igång med Etikettskrivaren 1. Ladda ner följande installationsprogram Ladda ner Drivrutiner för etikettskrivare Zebra

Lab1 Introduktion. 1 Syfte. 2 Innehåll Win32API Skapa trådar Kritiska sektioner Mailslothantering. 3 Förberedelse & Tips

InstalationGuide. English. MODEL:150NHighGain/30NMiniUSBAdapter

INSTALLATION AV KLIENT

Sidan kommer inte läggas upp någonstans utan du redovisar den för mig på något handledningstillfälle.

Användarmanual för Hemsida

DGC IT Manual Citrix Desktop - Fjärrskrivbord

Transkript:

AWT2 - AD11 Lathund Python & Django Detta dokument innehåller instruktioner för hur man sätter upp en utvecklingsmiljö för python, virtuella miljöer och ett djangoprojekt, samt lite blandade tips och tricks som berör inlämningsuppgiften samt andra bra grundläggande django- tips. Slutligen följer ett kort exempel på grunderna i det senaste vad gäller setup för ett djangoprojekt på en produktionsserver. Sätta upp en utvecklingsmiljö Windows: 1. Överväg att utveckla i Linux (eller OS X), det kan vara jobbigt i början men det är helt klart värt det i längden. J 2. Installera Python (aktuell version när detta skrivs är 2.7.3): direktlänk: http://www.python.org/ftp/python/2.7.3/python- 2.7.3.msi 3. Klistra in C:\Python27;C:\Python27\Lib\site-packages\;C:\Python27\Scripts\; i PATH på din dator: (Kontrollpanel- >System och säkerhet- >System, välj Avancerade systeminställningar, klicka på miljövariabler, hitta Path i den nedre listan och klicka på redigera- knappen. i början på strängen o lämna inga mellanslag efter. 4. Installera setuptools (aktuell version när detta skrivs är 0.6c11): http://pypi.python.org/packages/2.7/s/setuptools/setuptools- 0.6c11.win32- py2.7.exe 5. Installera pip: Öppna en terminal (startknapp, skriv cmd o tryck enter) och skriv: easy_install pip 6. Installera virtualenv och virtualenvwrapper- win: I en terminal, och skriv: pip install virtualenvwrapper virtualenvwrapper-win Mac & Linux: Jag förutsätter att din linux- distribution har python installerat. 1. Installera pip: Öppna en terminal och skriv: easy_install pip 2. Installera virtualenv och virtualenvwrapper- win: I en terminal, skriv: pip install virtualenvwrapper virtualenvwrapper 3. Initialisera virtualenvwrapper genom att skriva följande tre rader i terminalen: export WORKON_HOME=~/.virtualenvs mkdir -p $WORKON_HOME source /usr/local/bin/virtualenvwrapper.sh 4. Lägg till följande rad i din.bash_profile för att slutföra setupen: source /usr/local/bin/virtualenvwrapper.sh

Skapa en isolerad utvecklingsmiljö Denna instruktionen förutsätter att du har installerat virtualenvwrapper 1. Öppna en terminal och skriv: mkvirtualenv myproject Aktivera en isolerad utvecklingsmiljö Denna instruktionen förutsätter att du har installerat virtualenvwrapper 1. Öppna en terminal och skriv: workon myproject (Du kan även skriva enbart workon för att se vilka virtuella miljöer du har att välja mellan.) Installera Python Imaging Library PIL är en modul som används i de flesta typer av bildhantering (resize, thumbnails, etc) i Python. Den är käns för att kunna vara lite strulig att installera, fastnar ni så googla på felet! Windows: 1) Ladda ner och installera http://effbot.org/downloads/pil- 1.1.7.win32- py2.7.exe 2) I den virtualenv- miljö som ni vill använda med PIL så ta bort filen i Libs\ som heter no- global- site- packages Med andra ord så låter ni den virtualenv- miljön ärva de globala paketen. Detta är det enda enkla sättet vi kan använda PIL på i Windows utan att krångla med Visual Studio eller MinGW. Mac: 1) För att kunna kompilera saker på OS X så måste man ha ha Xcode installerat, eller åtminstone Command Line Tools - se översta svaret här: http://stackoverflow.com/questions/9329243/xcode- 4-4- command- line- tools - Kör du Snow Leopard eller äldre är det hela XCode som gäller, tyvärr. Dessutom måste man lägga in stöd för jpeg innan man installerar PIL om man vill kunna manipulera jpeg- bilder. Detta beskrivs här: http://gpiot.com/mac- os- x- lion- install- the- python- image- library- pil/ - Om man kör homebrew kan man köra brew install libjpeg istället. 2) pip install Pillow Linux: Förutsatt att du har build- essentials, zlib- dev och libjpeg- dev installerat i Ubuntu, eller motsvarande I andra distributioner så ska du kunna köra pip install Pillow. Du som kör debian eller ubuntu kan välja att installera ertt binärt apt- paket, python- imaging, motsvarande paket finns till andra distributioner. - - - När installationen är klar så kan ni scrolla upp några rader i terminalen och kolla följande rader: - - - TKINTER support available - - - JPEG support available - - - ZLIB (PNG/ZIP) support available *** FREETYPE2 support not available *** LITTLECMS support not available Raderna där det står JPEG och ZLIB (PNG/ZIP) ska vara "support available" om ni vill kunna manipulera jpeg och png- bilder.

Installera django 1. Se till att du har aktiverat önskad virtuell miljö med workon 2. Installera django med: pip install django Starta ett djangoprojekt 1. Se till att du har aktiverat en virtuell miljö där django är installerat 2. Gå till din projektmapp i terminalen T.ex: cd /Users/jan/projects 3. Starta ditt projekt med: django-admin.py startproject projektnamn Starta en djangoapp 1. Ta dig till mappen där du har ditt projekt 2. Skapa app med: python manage.py startapp appnamn Kör utvecklingsservern 1. Ta dig till mappen där du har ditt projekt 2. Starta servern med: python manage.py runserver

Django tips & tricks Här hittar ni främst lite generella tips, samt tips kring moment som man ofta kan fastna med och som inte finns med i kurspresentationerna, etc. Om ni har en ModelForm med ett obligatoriskt fält som ni inte vill visa i formuläret kan ni lägga till det efter att användaren har postat formuläret, enligt följande exempelsätt: if form.is_valid(): # spara formuläret i minnet med commit=false # new_ad är nu en instans av modellen Ad som bara # existerar i minnet, dvs inte i databasen. new_ad = form.save(commit=false) # populera önskat obligatoriskt fält som inte # var med i formuläret, i detta exemplet är det # den inloggade användaren new_ad.owner = request.user # spara på riktigt. new_ad är instansen av modellen # dvs new_ad.save() motsvarar form.save() med owner satt. new_ad.save() Om ni vill instantiera en ModelForm med ett befintlig modellinstans, t.ex. visa ett formulär för att redigera en befintlig annons, så måste ni skicka med en modellinstans vid formulärinstansiering, t.ex: ad = Ad.objects.get(id=ad_id) form = AdForm(instance=ad) Vid formulärpostningen måst instansen vara med också! Dvs: form = AdForm(request.POST, instance=ad) Om ni vill att användare ska kunna ladda upp filer eller bilder behöver ni tänka på följande: o Ställ in MEDIA_ROOT i settings.py till någon mapp, gärna utanför projektmappen. o När ni definierar FileField, ImageField, osv i era models så blir t.ex. models.imagefield(upload_to= profilbilder/ ) uppladdat till en underkatalog för MEDIA_ROOT o För att kunna ladda upp filer i ett formulär så måste form- taggen ha följande attribut: enctype="multipart/form-data" o För att kunna spara bilden när ni tar emot ett formulär i request.post i en view så måste ni ta med request.files för att filer ska följa med - t.ex form = MyCoolForm(request.POST, request.files) o För att kunna visa uppladdade bilder på en sida medan ni kör utvecklingsservern så behöver ni skapa en static serve för MEDIA_URL- mappen. I er urls.py lägger ni till följande längst upp: from django.conf.urls.static import static o På sista raden i samma fil så kan ni lägga till: ) + static(settings.media_url, document_root=settings.media_root) Parantesen i början är är alltså slutparantesen för url- listan. För att ställa in vilken sida django- registration ska skicka en nyregistrerad användare när man kör signup utan emailverifiering kan ni använda er av följande: ABSOLUTE_URL_OVERRIDES = { 'auth.user': lambda u: "/some/postregistration/url/", För att ändra vilken sida användaren kommer in på efter login kan ni använda följande: LOGIN_REDIRECT_URL = '/this/postlogin/page/' För att underlätta settings för flera servrar så kan man skapa en fil i samma folder som settings.py som man kallar local_settings.py och importerar längst ner i settings.py enligt

följande: try: from local_settings import * except ImportError: pass Det finns mer avancerade sätt att hantera settings för utveckling/test/produktion, detta är dock bra nog att böra med! Utnyttja django.shortcuts de är väldigt smidiga. Se dock till att förstå hur de fungerar. Mer på https://docs.djangoproject.com/en/1.4/topics/http/shortcuts/ Lägg templates för en app I en underkatalog som heter templates/appnamn/ under appens folder, t.ex. om appen heter tavlan så lägger ni dem i tavlan/templates/tavlan/ På detta sätt slipper ni speca något I TEMPLATES_DIRS Skapa en theme- app (eller liknande) som ni lägger projektets static - filer (css,js, bilder) i, i en underkatalog som heter static/theme/ under appens folder. På detta sätt slipper ni speca något I STATICFILES_DIRS. Dock måste ni då även se till att det står {{ STATIC_URL theme/ i era html- filer och eventuellt css- filer, men projektstrukturen blir ganska ren på detta sätt. Ni kan även lägga en templates- mapp i denna app (dvs i theme/templates/) som ni lägger projektrelaterade templates, såsom base.html och felsidor som 404.html, samt exempelvis templates för django- registration i en undermapp som heter registration/ Gå in på https://docs.djangoproject.com/en/1.4/ och läs igenom förteckningen på den sidan, det finns så mycket intressant funktionalitet i Django, t.ex. Aggregation för models, Cache- systemet, Internationalization, Pagination, Custom storage, Template filters, Formsets, anpassning av Admin- appen, och mycket mycket mer.

Deployment Nedan följer ett enkelt exempel på hur man kan sätta upp en djangoprojekt på en linuxserver för att ni ska ha ett hum om vilka moment som är inblandade. Exemplet förutsätter följande: Operativsystem: Ubuntu 12.04 Djangoversion: 1.4.x Virtualenv- mapp: /srv/www/mysite/env Static- mapp (STATIC_ROOT): /srv/www/mysite/static Media- folder (MEDIA_ROOT): /srv/www/mysite/media Projektmapp: /srv/www/mysite/myproject Alla nödvändiga python- paket och django- appar är installerade Vettiga brandväggsregler och andra säkerhetsåtgärder är genomförda Installera nginx och uwsgi Sudo apt- get install uwsgi nginx (Japp, det är så enkelt.) Konfigurera nginx Gå till /etc/nginx/sites- available och skapa en ny konfigurationsfil (t.ex. mysite) med följande innehåll: server { # Ställ in vilken port server ska lyssna på. listen 80; # Ställ in servernamn server_name www.mysite.se; # Låt vår STATIC_ROOT-mapp servas av nginx # på en url som mostvarar MEDIA_URL location /static { alias /srv/www/mysite/static; # Låt vår MEDIA_URL-mapp servas av nginx # på en url som mostvarar STATIC_URL location /media { alias /srv/www/mysite/media; # Allt annat som inte är media eller statiska filer # ska vidare till uwsgi och därmed django location / { # skicka vidare via uwsgi-rptokollet # (uwsgi är både ett protokoll och en application) uwsgi_pass unix:/run/uwsgi/app/cstorm/socket;

Konfigurera uwsgi Gå till /etc/uwsgi/apps- available och skapa en ny konfigurationsfil (t.ex. mysite.ini) med följande innehåll: [uwsgi] # vilken användare uwsgi ska köras som uid = uwsgi # vilken grupp uwsgi ska köras som gid = www-data # stöd för vhosts vhost = true # sökvägen till roten för virtuella miljön vi kör virtualenv = /srv/www/mysite/env # sökvägen till projektets basfolder chdir = /srv/www/mysite/myproject # sökväg till wsgi-applikationsmodulen från basfoldern # motsvarar variabeln application i filen myproject/wsgi.py module=myproject.wsgi:application # definiera settings-filen som används # motsvarar filen myproject/settings.py env: DJANGO_SETTINGS_MODULE=myproject.settings # använd python-pluginen plugins = python # det finns manga fler inställningar som jag inte beskriver här # läs docs och googla information om uwsgi för mer information! # här följer dock några exempel: enable-threads = true single-interpreter = true logdate #processes = 4 harakiri = 20 #limit-as = 128 die-on-term #memory-report chmod-socket = 660 Aktivera tjänsteinstanserna Länka nginx- configfilen från /etc/nginx/sites- available till /etc/nginx/sites- enabled samt länka uwsgi- configen från /etc/uwsgi/apps- available till /etc/uwsgi/apps- enabled. Exempel (när du står i sites-available): ln s mysite.ini../sites-enabled/mysite.ini Starta / stoppa services Kör sudo service nginx start, stop eller reload. Samma kommandon fungerar för uwsgi. Exempel: sudo service uwsgi reload Övrigt relaterat till deployment och serverar Fabric är ett väldigt trevligt verktyg för att automatisera diverse deploymentrelaterade uppgifter. Läs mer på http://fabfile.org Om ni vill ha en egen VPS (virtuell server) så är Glesys en väldigt trevlig leverantör I Sverige. Mer info på http://www.glesys.se. Andra alternative är Amazon EC2, som har ett år gratis av de flesta av deras tjänster. Det finns väldigt mycket tjänster och man kan lätt gå vilse bland alla kontrollpaneler och alternativ. Börja på http://aws.amazon.com/ec2/ och anväd Amazons documentation och Google för att lära er hur man gör.

Ett annat alternative är att köra applikationshosting, där man bara behöver bry sig om applikationen och inte server Heroku är ett populärt alternativ, börja på https://devcenter.heroku.com/articles/django