#!/usr/bin/python # -*- coding: utf-8 -*- from flask import Flask, session, redirect, url_for, escape, request, Response, render_template, make_response import sqlite3 import logging import os import json logging.basicConfig(filename='flask.log',level=logging.DEBUG) app = Flask(__name__) app.debug = True @app.route('/hae_postitoimipaikka', methods=['GET']) def hae_postitoimipaikka(): con = sqlite3.connect( os.path.abspath('../../flask/ohjaus6/kanta')) con.row_factory = sqlite3.Row cur = con.cursor() try: cur.execute(""" SELECT * FROM Postiosoite WHERE postinro = :postinro """, {"postinro": request.args.get("postinro", "-")}) except: logging.debug( "Kysely ei onnistu" ) logging.debug( sys.exc_info()[0] ) osoitteet = "" for o in cur: # osoitteet = osoitteet + o["postinro"] + "\t" + o["postitoimipaikka"] + "\n" osoitteet = o["postitoimipaikka"] resp = make_response(osoitteet, 200) resp.charset = "UTF-8" resp.mimetype = "text/plain" return resp @app.route('/hae_ryhmat', methods=['GET']) def hae_ryhmat(): con = sqlite3.connect( os.path.abspath('../../flask/ohjaus6/kanta')) con.row_factory = sqlite3.Row cur = con.cursor() try: cur.execute(""" SELECT RyhmaID, RyhmaNimi FROM Oppilaitosryhma ORDER BY RyhmaID """) except: logging.debug( "Kysely ei onnistu" ) logging.debug( sys.exc_info()[0] ) ryhmat = [] for o in cur: ryhmat.append( {"ryhmaid": o["ryhmaid"], "nimi":o["ryhmanimi"]} ) resp = make_response( render_template("ryhmat.xml",ryhmat=ryhmat, name="oppilaitosryhma")) resp.charset = "UTF-8" resp.mimetype = "text/xml" return resp @app.route('/hae_oppilaitokset', methods=['GET']) def hae_oppilaitokset(): con = sqlite3.connect( os.path.abspath('../../flask/ohjaus6/kanta')) con.row_factory = sqlite3.Row cur = con.cursor() try: cur.execute(""" SELECT OppilaitosID, Nimi FROM Oppilaitos WHERE Oppilaitosryhma_RyhmaID = :ryhmaid """, {"ryhmaid": request.args.get("ryhmaid", "1")}) except: logging.debug( "Kysely ei onnistu" ) logging.debug( sys.exc_info()[0] ) ryhmat = [] for o in cur: ryhmat.append( {"ryhmaid": o["oppilaitosid"], "nimi":o["nimi"]} ) # hyödynnetään samaa templatea kuin oppilaitosryhmien hakemisessa resp = make_response( render_template("ryhmat.xml",ryhmat=ryhmat, name="oppilaitos")) resp.charset = "UTF-8" resp.mimetype = "text/xml" return resp # json-versiot edelläolevista funktioista @app.route('/hae_postitoimipaikka_json', methods=['GET']) def hae_postitoimipaikka_json(): con = sqlite3.connect( os.path.abspath('../../flask/ohjaus6/kanta')) con.row_factory = sqlite3.Row cur = con.cursor() try: cur.execute(""" SELECT * FROM Postiosoite WHERE postinro = :postinro """, {"postinro": request.args.get("postinro", "-")}) except: logging.debug( "Kysely ei onnistu" ) logging.debug( sys.exc_info()[0] ) osoitteet = "" for o in cur: # osoitteet = osoitteet + o["postinro"] + "\t" + o["postitoimipaikka"] + "\n" osoitteet = o["postitoimipaikka"] resp = make_response(json.dumps(osoitteet), 200) resp.charset = "UTF-8" resp.mimetype = "application/json" return resp @app.route('/hae_ryhmat_json', methods=['GET']) def hae_ryhmat_json(): con = sqlite3.connect( os.path.abspath('../../flask/ohjaus6/kanta')) con.row_factory = sqlite3.Row cur = con.cursor() try: cur.execute(""" SELECT RyhmaID, RyhmaNimi FROM Oppilaitosryhma ORDER BY RyhmaID """) except: logging.debug( "Kysely ei onnistu" ) logging.debug( sys.exc_info()[0] ) ryhmat = [] for o in cur: ryhmat.append( {"ryhmaid": o["ryhmaid"], "nimi":o["ryhmanimi"]} ) resp = make_response( json.dumps( { "ryhmat":ryhmat, "name":"oppilaitosryhma" } )) resp.charset = "UTF-8" resp.mimetype = "application/json" return resp @app.route('/hae_oppilaitokset_json', methods=['GET']) def hae_oppilaitokset_json(): con = sqlite3.connect( os.path.abspath('../../flask/ohjaus6/kanta')) con.row_factory = sqlite3.Row cur = con.cursor() try: cur.execute(""" SELECT OppilaitosID, Nimi FROM Oppilaitos WHERE Oppilaitosryhma_RyhmaID = :ryhmaid """, {"ryhmaid": request.args.get("ryhmaid", "1")}) except: logging.debug( "Kysely ei onnistu" ) logging.debug( sys.exc_info()[0] ) ryhmat = [] for o in cur: ryhmat.append( {"ryhmaid": o["oppilaitosid"], "nimi":o["nimi"]} ) resp = make_response( json.dumps( { "ryhmat":ryhmat, "name":"oppilaitos" } )) resp.charset = "UTF-8" resp.mimetype = "application/json" return resp if __name__ == '__main__': app.debug = True app.run(debug=True)