大佬教程收集整理的这篇文章主要介绍了获取 sqlAlchemy 字段名称,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有这样的表的 sqlAlchemy 模型:
Base = declarative_base() class User(BasE): __tablename__ = 'user' uID = column('ID',Integer,priMary_key=TruE) name = column('name',String(255),nullable=False) surname = column('surname',nullable=False)
@H_674_7@我想创建方法“user_errors”,该方法将返回不正确字段的字典
errors = {fIEld_name : fIEld_content}
@H_674_7@但我不知道如何在代码中获取 fIEld_name。
我想像这样使用它:
def user_errors(user): errors = {} if is_error(user.Name): errors[user.name.__name__] = user.name ... return errors
@H_674_7@解决方法
您打算将它实现为 User 类的方法,对吗?
如果是这样,下面的代码应该适合您:
from sqlalchemy import column,Integer,String from sqlalchemy.ext.declarative import declarative_base def is_error(Name): if name != "Guido Van Rossum": return True return false Base = declarative_base() class User(BasE): __tablename__ = 'user' uid = column('id',priMary_key=TruE) name = column('name',String(255),nullable=False) surname = column('surname',nullable=False) def user_errors(self): errors = {} if is_error(self.Name): errors["user_name"] = self.name # do some stuff return errors
@H_674_7@输出:
>>> user = User() >>> user.name = 'test' >>> user.user_errors() {'user_name': 'test'}
@H_674_7@如果你想创建一个单独的函数,你的版本是正确的:
user = User() user.name = 'test' def user_errors(user): errors = {} if is_error(user.Name): errors["user_name"] = user.name # do some stuff return errors user_errors(user) Output:{'user_name': 'test'}
@H_674_7@正如我所见,你不需要使用一些魔法参数来设置错误字典的键名,因为你已经定义了你正在检查用户名,无论如何,如果你想统一错误检查和迭代所有用户类参数,尝试像这样使用……
def user_errors(user): errors = {} for col_name in user.__table__.columns.keys(): col_value = user.__getattribute__(col_Name) if is_error(col_value): errors[col_name] = col_value # do some stuff return errors # to get this stuff working you should define ALL class attributes,otherwise - get exeption user = User() user.id = 1 user.name = 'test' user.surname = 'test' user_errors(user) Output: {'id': 1,'name': 'test','surname': 'test'}
@H_674_7@希望对你有帮助
有用的链接: https://www.tutorialsteacher.com/python/magic-methods-in-python
大佬总结
以上是大佬教程为你收集整理的获取 sqlAlchemy 字段名称全部内容,希望文章能够帮你解决获取 sqlAlchemy 字段名称所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。