程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了获取 sqlAlchemy 字段名称大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决获取 sqlAlchemy 字段名称?

开发过程中遇到获取 sqlAlchemy 字段名称的问题如何解决?下面主要结合日常开发的经验,给出你关于获取 sqlAlchemy 字段名称的解决方法建议,希望对你解决获取 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,请注明来意。