2016-04-30 4 views
0

Ich versuche, ein Backend mit Flask zu bauen. Ich weiß, wie man sqlite in Flask anschließt. Aber es scheint, dass die Verbindung mysql komplizierter ist. Ich versuchtemysql - Wie stellt man sicher, dass die mysql-Datenbank in Flask mit flask-sqlalchemy erfolgreich verbunden ist?

from flask import Flask 
from flask.ext.sqlalchemy import SQLAlchemy 

app = Flask(__name__) 
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:[email protected]/test' 
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 

admin = User('admin', '[email protected]') 

db.create_all() # In case user table doesn't exists already. Else remove it. 

db.session.add(admin) 

db.session.commit() # This is needed to write the changes to database 

User.query.all() 

User.query.filter_by(username='admin').first() 

Das Programm fehlerfrei ausgeführt werden kann. Allerdings verwende ich Navicat, um zu überprüfen, ob die Tabelle zur Datenbank hinzugefügt wird, fand ich die test Datenbank ist immer noch leer.

Eigentlich verstehe ich nicht ganz was genau ist eine Datenbankverbindung. Da es scheint, dass ich eine Verbindung in Navicat erstellen kann, und ich auch die Datenbank im Code verbinden, was sind die Unterschiede zwischen diesen Verbindungen?

Ich frage mich, ob es etwas falsch mit dem SQLALCHEMY_DATABASE_URI ist, weil ich, dass es gefunden sind mehrere Benutzer

enter image description here

Mit diesen Fragen, ich bin nicht sicher machen könnte, ob ich erfolgreich mit der Datenbank verbunden. Kann jemand helfen?

Antwort

0

Es scheint, als hätte Ihre Datenbank keinen Autocommit auf aktiviert. Sie können ‚Kraft‘ es aus Ihrer Anwendung

db = SQLAlchemy(app, session_options={'autocommit': True}) 
+0

hey Kumpel, ich bin das gleiche Problem haben, können Sie sich auch bitte. http://stackoverflow.com/questions/42323929/mysql-table-not-created-using-flask-and-pymysql – sabbibJAVA

Verwandte Themen