Add flask server for online functionalities
This commit is contained in:
parent
33347480f6
commit
67817addb9
2 changed files with 61 additions and 0 deletions
3
Flask-Server/dummy.py
Normal file
3
Flask-Server/dummy.py
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
import requests
|
||||||
|
r = requests.post("http://127.0.0.1:5000/message/2", data={'content':'Piano 2'})
|
||||||
|
print(r.text)
|
58
Flask-Server/server.py
Normal file
58
Flask-Server/server.py
Normal file
|
@ -0,0 +1,58 @@
|
||||||
|
from flask import Flask, session, url_for, redirect, request, render_template, abort, flash, Markup, json
|
||||||
|
from datetime import datetime
|
||||||
|
from flask_sqlalchemy import SQLAlchemy
|
||||||
|
import random
|
||||||
|
import os
|
||||||
|
from sqlalchemy.sql.expression import func
|
||||||
|
|
||||||
|
app = Flask(__name__)
|
||||||
|
app.secret_key = "debug-attivo"
|
||||||
|
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///db.sqlite'
|
||||||
|
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
|
||||||
|
db = SQLAlchemy(app)
|
||||||
|
app.config.from_object(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
# Database Classes go beyond this line
|
||||||
|
|
||||||
|
class Message(db.Model):
|
||||||
|
mid = db.Column(db.Integer, primary_key=True)
|
||||||
|
floor = db.Column(db.Integer, nullable=False)
|
||||||
|
content = db.Column(db.String, nullable=False)
|
||||||
|
|
||||||
|
def toJSON(self):
|
||||||
|
return {"Message": {'floor': self.floor,
|
||||||
|
'content': self.content}}
|
||||||
|
|
||||||
|
def __init__(self, content, floor):
|
||||||
|
self.content = content
|
||||||
|
self.floor = floor
|
||||||
|
|
||||||
|
def __repr__(self):
|
||||||
|
return self.content
|
||||||
|
|
||||||
|
|
||||||
|
def give_json_response(floor):
|
||||||
|
messages = Message.query.filter_by(floor=floor).order_by(func.random()).limit(5).all()
|
||||||
|
return json.dumps([message.toJSON() for message in messages])
|
||||||
|
|
||||||
|
|
||||||
|
# Website pages and API functions go beyond this line
|
||||||
|
@app.route("/message/<int:floor>", methods=["GET", "POST"])
|
||||||
|
def page_message(floor):
|
||||||
|
if request.method == "GET":
|
||||||
|
return give_json_response(floor)
|
||||||
|
newmessage = Message(request.form['content'], floor)
|
||||||
|
db.session.add(newmessage)
|
||||||
|
db.session.commit()
|
||||||
|
return "Success."
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
# Se non esiste il database viene creato
|
||||||
|
if not os.path.isfile("db.sqlite"):
|
||||||
|
newmessage = Message("Welcome to the dungeon, mortal.", 1)
|
||||||
|
db.create_all()
|
||||||
|
db.session.add(newmessage)
|
||||||
|
db.session.commit()
|
||||||
|
app.run(debug=True)
|
Loading…
Reference in a new issue