2016-06-03 11 views
-2

ich sql sqlalchemy auf Kolben anschließen möchtenKolben kann keine Verbindung sqlalchemy

aber es kann nicht

es ein Fehler ist

sqlalchemy.exc.OperationalError: (_mysql_exceptions.OperationalError) (1049, "Unknown database 'alchemy_new'") 

Ich kann dieses Problem nicht lösen.

# -*- coding:utf-8 -*- 

from flask import Flask 
from flask_sqlalchemy import SQLAlchemy 
from flask_restful import reqparse, abort, Api, Resource 

app = Flask(__name__) 
api = Api(app) 

app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:[email protected]/catchat' 
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) 
    password = db.Column(db.String(120), unique=True) 

    def __init__(self, username, email, password): 
     self.username = username 
     self.email = email 
     self.password = password 

    def __repr__(self): 
     return '<User %r>' % self.username 

user_inf = {'user1' : {'username':'jaeyeonkim','email':'[email protected]', 'password':'12345'}} 

def not_exist(user_id): 
    if user_id not in user_inf: 
     abort(404, message="{} does not exist".format(user_id)) 
parser = reqparse.RequestParser() 
parser.add_argument('username') 
parser.add_argument('email') 
parser.add_argument('password') 

class user(Resource): 
    def get(self, user_id): 
     not_exist(user_id) 
     return user_inf[user_id] 
    def delete(self,user_id): 
     not_exist(user_id) 
     del user_inf[user_id] 
     return '', 200 
    def put(self,user_id): 
     args = parser.parse_args() 
     not_exist(user_id) 

     a = {} 
     a['username'] = args['username'] 
     a['email'] = args['email'] 
     a['password'] = args['password'] 

     user_inf[user_id] = a 
     return a, 200 
class userlist(Resource): 

    def get(self): 
     return user_inf 
    def post(self): 
     args = parser.parse_args() 


     new_user = user_inf(args['username'], args['email'], args['password']) 
     new_user_id = db.session.add(new_user) 
     db.session.commit() 
     return new_user_id, 200 

api.add_resource(userlist, '/users') 
api.add_resource(user,'/api/v1/users/<user_id>') 

if __name__ == '__main__': 
    app.run(debug=True) 
+2

'Unbekannte Datenbank 'alchemy_new'' Stellen Sie sicher, dass dieser DB existiert. –

Antwort

0

Zunächst einmal habe ich keine Ahnung, warum Passwort eindeutig sein soll;) Zweitens sieht es aus wie sqlalchemy nicht Sie Verbindungszeichenfolge erkennen. Versuchen:

app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql:////root:[email protected]/catchat' 
0

Nach dem folgenden Code: app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:[email protected]/catchat' Ihre Datenbank ‚catchat'.Please es schaffen.

mysql -u root -p12345 create database catchat;

Und schaffen Tisch, bevor sie verwendet werden.

db.create_all()

schließlich nur ein Vorschlag: Verwenden Sie nicht flaschen RESTful API zu definieren, wählen Sie bitte @app.route("/user", methods=["GET"]), ist es einfach, einfach und nützlich.

Vertrauen Sie mir. Vor zwei Wochen habe ich meinen Code von flash-restful in app.route umgeschrieben.

Verwandte Themen