Kann jemand in Flask Beispielcodes für den Zugriff auf eine MySQL DB teilen? Es gab Dokumente, die zeigen, wie man sich mit sqlite verbindet, aber nicht mit MySQL.Verwenden von MySQL in Flask
Vielen Dank im Voraus
Kann jemand in Flask Beispielcodes für den Zugriff auf eine MySQL DB teilen? Es gab Dokumente, die zeigen, wie man sich mit sqlite verbindet, aber nicht mit MySQL.Verwenden von MySQL in Flask
Vielen Dank im Voraus
from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://username:[email protected]/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
können Sie google "Flask-sqlalchemy" für weitere Dinge.
ja, aber das ist mit sqlalchemy. was ist mit nur geraden mysql? –
Zuerst müssen Sie Flask-MySQL-Paket installieren. Mit pip
zum Beispiel:
pip install flask-mysql
Als nächstes müssen Sie einige Konfiguration hinzufügen und initialisieren 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)
Jetzt können Sie Verbindung und Cursor Objekte erhalten und ausführen rohe Anfragen:
conn = mysql.connect()
cursor =conn.cursor()
cursor.execute("SELECT * from User")
data = cursor.fetchone()
Wie kann ich nach Verbindungsfehlern suchen? –
#!/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})
Danke für Ihre Antwort. Kannst du, anstatt nur Code zu veröffentlichen, etwas mehr darüber erzählen, was dieser Code bewirkt? – JAL
Ziemlich einfach mit 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)
In Ihrer Datei index.html tun nur so etwas wie:
<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>
google für Flask-sqlalchemy – Bastian