with restful example create python mysql web-services flask

restful - web service python example



Usando MySQL en el Frasco (4)

¿Puede alguien compartir códigos de ejemplo en Flask sobre cómo acceder a una base de datos MySQL? Ha habido documentos que muestran cómo conectarse a sqlite pero no en MySQL.

Muchas gracias por adelantado


Bastante simple con pymysql:

from flask import Flask, request, render_template import pymysql db = pymysql.connect("localhost", "username", "password", "database") app = Flask(__name__) api = Api(app) @app.route(''/'') def someName(): cursor = db.cursor() sql = "SELECT * FROM table" cursor.execute(sql) results = cursor.fetchall() return render_template(''index.html'', results=results) if __name__ == ''__main__'': app.run(debug=True)

En su archivo index.html solo haga algo como:

<div> <% for row in results %} <tr> <td>{{ row[0] }}</td> <td>{{ row[1] }}</td> <td>{{ row[2] }}</td> <td>{{ row[3] }}</td> </tr> {% endfor %} </div>


Primero necesitas instalar el paquete Flask-MySQL. Usando pip por ejemplo:

pip install flask-mysql

A continuación, debe agregar alguna configuración e inicializar MySQL:

from flask import Flask from flaskext.mysql import MySQL app = Flask(__name__) mysql = MySQL() app.config[''MYSQL_DATABASE_USER''] = ''root'' app.config[''MYSQL_DATABASE_PASSWORD''] = ''root'' app.config[''MYSQL_DATABASE_DB''] = ''EmpData'' app.config[''MYSQL_DATABASE_HOST''] = ''localhost'' mysql.init_app(app)

Ahora puede obtener objetos de conexión y cursor y ejecutar consultas sin formato:

conn = mysql.connect() cursor =conn.cursor() cursor.execute("SELECT * from User") data = cursor.fetchone()


#!/usr/bin/python from flask import Flask,jsonify,abort, make_response import MySQLdb app = Flask(__name__) db = MySQLdb.connect("localhost", "root", "yourDbPassWord", "DBname") @app.route(''/api/v1.0/items'', methods=[''GET'']) def get_items(): curs = db.cursor() try: curs.execute("SELECT * FROM items") ... except: print "Error: unable to fetch items" return jsonify({"desired: " response})


from flask import Flask from flask.ext.sqlalchemy import SQLAlchemy app = Flask(__name__) app.config[''SQLALCHEMY_DATABASE_URI''] = ''mysql://username:password@server/db'' db = SQLAlchemy(app) class User(db.Model): id = db.Column(db.Integer, primary_key=True) username = db.Column(db.String(80), unique=True) email = db.Column(db.String(120), unique=True) def __init__(self, username, email): self.username = username self.email = email def __repr__(self): return ''<User %r>'' % self.username

Puedes google "Flask-Sqlalchemy" para más cosas.