Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import os
- import sqlite3
- import json
- from flask import jsonify
- import datetime
- from flask import Flask, request, session, g, redirect, url_for, abort, \
- render_template, flash
- app = Flask(__name__) # create the application instance :)
- app.config.from_object(__name__) # load config from this file , flaskr.py
- # Load default config and override config from an environment variable
- app.config.update(dict(
- DATABASE=os.path.join(app.root_path, 'flaskr.db'),
- SECRET_KEY='development key',
- USERNAME='admin',
- PASSWORD='default'
- ))
- app.config.from_envvar('FLASKR_SETTINGS', silent=True)
- def connect_db():
- """Connects to the specific database."""
- rv = sqlite3.connect(app.config['DATABASE'])
- rv.row_factory = sqlite3.Row
- return rv
- def get_db():
- """Opens a new database connection if there is none yet for the
- current application context.
- """
- if not hasattr(g, 'sqlite_db'):
- g.sqlite_db = connect_db()
- return g.sqlite_db
- @app.teardown_appcontext
- def close_db(error):
- """Closes the database again at the end of the request."""
- if hasattr(g, 'sqlite_db'):
- g.sqlite_db.close()
- def init_db():
- db = get_db()
- with app.open_resource('schema.sql', mode='r') as f:
- db.cursor().executescript(f.read())
- db.commit()
- @app.cli.command('initdb')
- def initdb_command():
- """Initializes the database."""
- init_db()
- return ('Initialized the database.');
- # *************** ROUTES **************
- #@app.route('/')
- @app.route('/write') #Va mourir
- def write():
- return render_template('write.html')
- @app.route('/') #Va mourir
- def show_entries():
- db = get_db()
- cur = db.execute('select type, auteur, contenu, heure, destinataire, lu from message order by id desc')
- message = cur.fetchall()
- return render_template('show_entries.html', entries=message)
- @app.route('/add', methods=['POST']) #Va mourir
- def add_entrx():
- date = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
- db = get_db()
- db.execute('insert into message (type, auteur, contenu, destinataire, heure, lu) values (?, ?, ?, ?, ?, ?)',
- [request.form['type'], request.form['auteur'], request.form['contenu'], request.form['destinataire'], date, 0 ])
- db.commit()
- flash('New entry was successfully posted')
- return redirect(url_for('show_entries'))
- @app.route('/messages', methods=['GET']) #Ok
- def show_entry():
- db = get_db()
- cur = db.execute('select type, auteur, contenu, heure, destinataire, lu from message order by id desc')
- results = []
- i = 0
- for row in cur:
- results.append({})
- results[i]["auteur"] = row["auteur"]
- results[i]["contenu"] = row["contenu"]
- results[i]["heure"] = row["heure"]
- i += 1
- return jsonify(results)
- @app.route('/messages', methods=['POST']) #Ok
- def add_entry():
- date = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
- db = get_db()
- db.execute('insert into message (type, auteur, contenu, destinataire, heure, lu) values (?, ?, ?, ?, ?, ?)',
- [request.form['type'], request.form['auteur'], request.form['contenu'], request.form['destinataire'], date, 0 ])
- db.commit()
- return ('Done')
- @app.route('/messages/<id>', methods=['GET']) #Ok
- def show_entry_id(id):
- id = int(id)
- db = get_db()
- cur = db.execute('select type, auteur, contenu, heure, destinataire, lu from message WHERE id=? order by id desc', [id])
- row = cur.fetchone()
- if row is None:
- return jsonify("404, Message not found")
- else:
- return jsonify(row[0], row[1], row[2], row[3], row[4], row[5])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement