Advertisement
Guest User

Untitled

a guest
Mar 24th, 2017
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.53 KB | None | 0 0
  1. import os
  2. import sqlite3
  3. import json
  4. from flask import jsonify
  5. import datetime
  6. from flask import Flask, request, session, g, redirect, url_for, abort, \
  7.      render_template, flash
  8.      
  9. app = Flask(__name__) # create the application instance :)
  10. app.config.from_object(__name__) # load config from this file , flaskr.py
  11.  
  12. # Load default config and override config from an environment variable
  13. app.config.update(dict(
  14.     DATABASE=os.path.join(app.root_path, 'flaskr.db'),
  15.     SECRET_KEY='development key',
  16.     USERNAME='admin',
  17.     PASSWORD='default'
  18. ))
  19. app.config.from_envvar('FLASKR_SETTINGS', silent=True)
  20. def connect_db():
  21.     """Connects to the specific database."""
  22.     rv = sqlite3.connect(app.config['DATABASE'])
  23.     rv.row_factory = sqlite3.Row
  24.     return rv
  25.  
  26. def get_db():
  27.     """Opens a new database connection if there is none yet for the
  28.    current application context.
  29.    """
  30.     if not hasattr(g, 'sqlite_db'):
  31.         g.sqlite_db = connect_db()
  32.     return g.sqlite_db
  33.    
  34. @app.teardown_appcontext
  35. def close_db(error):
  36.     """Closes the database again at the end of the request."""
  37.     if hasattr(g, 'sqlite_db'):
  38.         g.sqlite_db.close()
  39.        
  40. def init_db():
  41.     db = get_db()
  42.     with app.open_resource('schema.sql', mode='r') as f:
  43.         db.cursor().executescript(f.read())
  44.     db.commit()
  45.  
  46. @app.cli.command('initdb')
  47. def initdb_command():
  48.     """Initializes the database."""
  49.     init_db()
  50.     return ('Initialized the database.');
  51.  
  52.    
  53. # *************** ROUTES **************
  54.  
  55. #@app.route('/')
  56.  
  57. @app.route('/write') #Va mourir
  58. def write():
  59.     return render_template('write.html')
  60.  
  61. @app.route('/') #Va mourir
  62. def show_entries():
  63.     db = get_db()
  64.     cur = db.execute('select type, auteur, contenu, heure, destinataire, lu from message order by id desc')
  65.     message = cur.fetchall()
  66.     return render_template('show_entries.html', entries=message)
  67.    
  68. @app.route('/add', methods=['POST']) #Va mourir
  69. def add_entrx():
  70.     date = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
  71.     db = get_db()
  72.     db.execute('insert into message (type, auteur, contenu, destinataire, heure, lu) values (?, ?, ?, ?, ?, ?)',
  73.         [request.form['type'], request.form['auteur'], request.form['contenu'], request.form['destinataire'], date, 0 ])
  74.     db.commit()
  75.     flash('New entry was successfully posted')
  76.     return redirect(url_for('show_entries'))
  77.    
  78. @app.route('/messages', methods=['GET']) #Ok
  79. def show_entry():
  80.     db = get_db()
  81.     cur = db.execute('select type, auteur, contenu, heure, destinataire, lu from message order by id desc')
  82.     results = []
  83.     i = 0
  84.    
  85.     for row in cur:
  86.         results.append({})
  87.         results[i]["auteur"] = row["auteur"]
  88.         results[i]["contenu"] = row["contenu"]
  89.         results[i]["heure"] = row["heure"]
  90.         i += 1
  91.  
  92.     return jsonify(results)
  93.    
  94. @app.route('/messages', methods=['POST']) #Ok
  95. def add_entry():
  96.     date = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
  97.     db = get_db()
  98.     db.execute('insert into message (type, auteur, contenu, destinataire, heure, lu) values (?, ?, ?, ?, ?, ?)',
  99.         [request.form['type'], request.form['auteur'], request.form['contenu'], request.form['destinataire'], date, 0 ])
  100.     db.commit()
  101.     return ('Done')
  102.  
  103. @app.route('/messages/<id>', methods=['GET']) #Ok
  104. def show_entry_id(id):
  105.     id = int(id)
  106.     db = get_db()
  107.     cur = db.execute('select type, auteur, contenu, heure, destinataire, lu from message WHERE id=? order by id desc', [id])
  108.     row = cur.fetchone()
  109.     if row is None:
  110.         return jsonify("404, Message not found")
  111.     else:
  112.         return jsonify(row[0], row[1], row[2], row[3], row[4], row[5])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement