2017-03-10 94 views
0

我是Sqlalchemy的新手。 我有列USERNAME中的多个键的表。 这就是我在模型中所做的。sqlalchemy ORM:如何声明一个包含多个键的表类?

型号:

from flask import Flask 
from flask_sqlalchemy import SQLAlchemy 

app = Flask(__name__) 
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://[email protected]/admin' 
db = SQLAlchemy(app) 

class RADUSAGE(db.Model): 
    __tablename__ = 'RADUSAGE' 
    USERNAME = db.Column(db.String(513)) 
    AGE = db.Column(db.Integer) 

    def __init__(self, USERNAME, AGE): 
     self.USERNAME = USERNAME 
     self.AGE = AGE 

def __repr__(self): 
    return '<RADUSAGE %r>' % self.USERNAME 

但我得到了一个错误:

File "/Users/admin/rad_env/lib/python2.7/site-packages/sqlalchemy/ext/declarative/base.py", line 530, in map 
**self.mapper_args 
File "<string>", line 2, in mapper 
File "/Users/admin/rad_env/lib/python2.7/site-packages/sqlalchemy/orm/mapper.py", line 677, in __init__ 
self._configure_pks() 
File "/Users/admin/rad_env/lib/python2.7/site-packages/sqlalchemy/orm/mapper.py", line 1277, in _configure_pks 
(self, self.mapped_table.description)) 
sqlalchemy.exc.ArgumentError: Mapper Mapper|RADUSAGE|RADUSAGE could not assemble any primary key columns for mapped table 'RADUSAGE' 

我如何可以声明包含SQLAlchemy的多个关键这个表类?希望可以有人帮帮我。提前致谢。

+0

你是指复合主键?还是多个独特的约束? – univerio

+0

我的意思是,多列键是列是非唯一索引的第一列,其中列中允许多个出现的给定值。 (https://dev.mysql.com/doc/refman/5.7/en/show-columns.html) – RunawayBride

+0

那么只是一个普通的索引?你做了什么没有奏效? – univerio

回答

0

你应该能够指定primary_key你映射= TRUE每个PK列:

USERNAME = db.Column(db.String(513), primary_key=True) 
AGE = db.Column(db.Integer, primary_key=True) 

你尝试了吗?

相关问题