如何在SQLAlchemy中獲取所需的驗證器?其實我只是想確信用戶在表單中填寫了所有必填字段。我使用PostgreSQL,但它沒有任何意義,因爲從對象在我的models.py文件中創建的表:SQLAlchemy中的驗證
from sqlalchemy import (
Column,
Integer,
Text,
DateTime,
)
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import (
scoped_session,
sessionmaker,
)
from zope.sqlalchemy import ZopeTransactionExtension
from pyramid.security import (
Allow,
Everyone,
)
Base = declarative_base()
class Article(Base):
""" The SQLAlchemy declarative model class for a Article object. """
__tablename__ = 'article'
id = Column(Integer, primary_key=True)
name = Column(Text, nullable=False, unique=True)
url = Column(Text, nullable=False, unique=True)
title = Column(Text)
preview = Column(Text)
content = Column(Text)
cat_id = Column(Integer, nullable=False)
views = Column(Integer)
popular = Column(Integer)
created = Column(DateTime)
def __unicode__(self):
return unicode(self.name)
所以這nullable=False
不起作用,因爲記錄與空字段任何情況下加。例如,我可以通過設置名稱將數據庫級別的限制設置爲NOT NULL。但是在SQLAlchemy中必須有關於驗證的事情是不是?我來自yii php框架,那裏根本就沒有問題。
請記住,SQLAlchemy的是沒有設計成一個驗證框架:相反,它是一個數據庫工具包,可以另外用作ORM。類似'nullable'參數的東西可以幫助您獲取SQLAlchemy來生成SQL CREATE腳本(將列設置爲NOT NULL)。因此,SQLAlchemy被設計爲將驗證問題留給你(使用'validates',如下所述),數據庫本身(比如使用'CheckConstraint')或其他軟件(如[WTForms](http:// wtforms .readthedocs.org/EN /最新/))。 –