Использование MySQL в фляге

Может ли кто-нибудь поделиться примерами кодов в Flask о том, как получить доступ к базе данных MySQL? Были документы, показывающие, как подключаться к sqlite, но не к MySQL.

заранее большое спасибо

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 

Вы можете Google «Flask-Sqlalchemy» для большего количества вещей.

Во-первых, вам нужно установить пакет Flask-MySQL. Используя pip например:

pip install flask-mysql

Затем вам нужно добавить некоторую конфигурацию и инициализировать 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) 

Теперь вы можете получить объекты соединения и курсора и выполнить необработанные запросы:

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

Довольно просто с 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) 

В вашем файле index.html просто выполните что-то вроде:

 <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> 
 #!/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})