Politik

Lennarts MOOC och datorkurs 3: Vi installerar Python Flask och visar data från MongoDB på webben

Lennarts MOOC och datorkurs rullar vidare med del 3, där vi installerar Python Flask och visar data från MongoDB på webben.

En kort rekapitulation: den här lilla datorkursen vill ge en insikt i hur det går till på startupmarknaden här i Silicon Valley, i Stockholm och i alla andra IT-städer runt om i världen.

Vilka produkter från den öppna kodrörelsen är de mest populära, hur jobbar man, vad gör man när man börjar skriva sina egna appar? Det är det som den här lilla kursen handlar om.

Vi började med att ladda ner en av dagens mest populära databaser, MongoDB och installera den. Det var första lektionen.

I den andra lektionen laddade vi ner det populära datorspråket Python och installerade det.

Sen visade vi hur vi kan skicka data fram och tillbaks mellan Python och MongoDB.

  1. Lennarts MOOC och datorkurs 1: Vi beskriver projektet och installerar MongoDB
  2. Lennarts MOOC och datorkurs 2: Vi installerar Python och kopplar upp den till MongoDB

Nu är det dags att nästa steg. Hittills har vi bara jobbat i DOS-fönster under Windows. Nu ska vi visa data från vår databas direkt på webben. Och för att göra det så börjar vi med att installera ett s.k. mikroramverk som heter Flask.

Den som börjar jobba med Flask bör absolut läsa Miguel Grinbergs utmärkta
The Flask Mega-Tutorial som utgör grunden för Miguels kommande bok om Flask.

Om vi lägger den här koden i en fil som vi kan kalla flaskmongo1.py:

from flask import Flask, render_template
import pymongo
from pymongo import Connection
connection = Connection(‘localhost’, 27017)
db = connection.testdb
post1=” ”
collection = db.testcollection

app = Flask(__name__)

@app.route(“/”)

def hello():
temp1=””
for post in collection.find({‘namn’: ‘Lennart’}, {‘_id’: False}):
   print (post)
   temp=str(post)
   temp1=temp1+”<br/>”+temp
   print (temp1)
return (“<center><b>Hello World 2013 </b><center>><hr /> %s ” %temp1)

if __name__ == “__main__”:
app.debug = True, app.run()

Obs att kodraden for post in collection.find({‘namn’: ‘Lennart’}, {‘_id’: False}): och kodraden return (“<center><b>Hello World 2013 </b><center>><hr /> %s ” %temp1)
båda ska skrivas till vänster medan kodraderna
   print (post)
   temp=str(post)
   temp1=temp1+”<br/>”+temp
   print (temp1)
ska skrivas två ett tre steg längre till höger än dessa. Det är så man skriver s.k. loops i Python. Något som gör det möjligt att inte behöva använda tecken som { och }

Nu spar vi den här Flask-filen i samma mapp där vi sparade de andra filerna från de tidigare lektionerna, och startar Mongodb som vi lärde oss att göra i lektion ett.

Sen sen exekverar vi den här Flask-filen genom att öppna ett DOS-fönster och skriva filnamnet, så kommer vi att starta Flasks webbserver på port 5000.

Det betyder att om vi sen öppnar en webbläsare och skriver http://localhost:5000/ så bör vi se följande:

Vad vi har gjort är att söka efter information i databasen, hittat den och sen visat den i HTML-format i vår webbserver.

Om ni undrar vad koden i flaskfilen betyder så är den inte så komplicerad som den kanske ser ut.
Flask-boken har en mycket bra inledning och den enda jag har lagt till är


import pymongo
from pymongo import Connection
connection = Connection(‘localhost’, 27017)
db = connection.testdb
post1=” “
collection = db.testcollection

som importerar pymongo och Connection som gör det möjligt att kommunicera med MongoDB. Som man först måste starta i sitt eget DOS-fönster. Sen läser vi in de data vi har sparat i vår egen databas i MongoDB i en variabel vi kallar collection.

Sen sätter vi upp en s.k. for loop for post in collection.find({‘namn’: ‘Lennart’}, {‘_id’: False}):
som läser in varje enskild dokument som innehåller namnet ‘Lennart’ som vi sen skriver ut.

{‘_id’: False} Är viktigt för det betyder att vi inte vill se de otympliga objekt-id:na.

Det är allt för denna gång. Mer nästa vecka när jag ska gå igenom koden litet mer och även förenkla den liten.

Pressklipp:
Veckans coolaste appar och tjänster, Sju heta ramverk för Javascript,Tio tillämpningar för MongoDB

[tags] Lennarts Datakurs, MongoDB, Python Mongo, MongoDB Python, Lennart Silicon Valley , Flask, Python Flask [/tags]