Commit f880dd42 authored by Danny Rehl's avatar Danny Rehl
Browse files

extended example (Rick and Morty API)

parent 6b1210aa
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -26,10 +26,19 @@ einrichten und die Abhängigkeiten dort installieren:
Ihr habt bereits ein kleines lauffähiges Programm namens *hello.py*, welches Ihr starten könnt. Der Startvorgang 
sieht dabei so aus:

    FLASK_APP=hello.py; flask run
    export FLASK_APP=hello.py
    export FLASK_ENV=development
    flask run

Nach diesem Befehl startet die Konsole den Webserver und Ihr könnt mittels http://127.0.0.1:5000 mit einem Browser 
Eurer Wahl Eure Webseite(n) bestaunen.

## Das Projekt erweitern

Unter dem Ordner *creative_app* habt Ihr schon eine größere Webapplikation zur Verfügung. Diese könnt Ihr genauso 
starten wie die vorherige Applikation. Diese werden wir heute besprechen.

    cd creative_app
    export FLASK_APP=creative_app.py
    export FLASK_ENV=development
    flask run
+0 −0

Empty file added.

+32 −0
Original line number Diff line number Diff line
import requests
from flask import Flask, render_template, url_for, jsonify
from creative_app.forms.rickandmorty import RickAndMortyForm

app = Flask(__name__, template_folder='./templates', static_folder='./static')
app.config['SECRET_KEY'] = 'wvNfX4Up5WBB4JDwPNtGqJ4dCy9dwFSV'  # Change this


@app.route('/')
def index():
    url = url_for('rickandmorty')
    return render_template('index.html', interesting_url=url)


@app.route('/rickandmorty', methods=['GET', 'POST'])
def rickandmorty():
    url_template = "http://loremricksum.com/api/?paragraphs={p}&quotes={q}"
    text = {"data": ["Currently no Rick and Morty citations."]}
    form = RickAndMortyForm()

    if form.validate_on_submit():
        payload = {
            'paragraphs': form.paragraphs.data,
            'quotes': form.paragraphs.data
        }
        r = requests.get(url_template, params=payload)
        if r.ok:
            text = r.json()
        else:
            text = {"data": ["Error on API request"]}

    return render_template('rickandmorty.html', form=form, text=text["data"])
+0 −0

Empty file added.

+16 −0
Original line number Diff line number Diff line
#!/usr/bin/env python
# -*- coding: utf-8 -*-

from flask_wtf import FlaskForm
from wtforms import IntegerField, SubmitField
from wtforms.validators import InputRequired


class RickAndMortyForm(FlaskForm):
    """
    Form used to request Rick and Morty Lorem Ipsum Generator
    """
    paragraphs = IntegerField('Anzahl Absätze', validators=[InputRequired()])
    citations = IntegerField('Anzahl Zitate', validators=[InputRequired()])
    submit = SubmitField('Anfrage durchführen')
Loading