簡體   English   中英

用 sqlalchemy 和 DATE 格式插入的問題

[英]Problem with inserting with sqlalchemy and DATE format

我的代碼用 func "vk.profile_stats" 給了我這個錯誤:

(pymysql.err.OperationalError) (2006, "MySQL server has gone away (BrokenPipeError(32, 'Broken pipe'))")
[SQL: SELECT vk_profile.id AS vk_profile_id, vk_profile.friends AS vk_profile_friends, vk_profile.followers AS vk_profile_followers, vk_profile.audios AS vk_profile_audios, vk_profile.gifts AS vk_profile_gifts, vk_profile.date AS vk_profile_date 
FROM vk_profile 
WHERE vk_profile.date = %(date_1)s 
 LIMIT %(param_1)s]
[parameters: {'date_1': datetime.date(2019, 11, 27), 'param_1': 1}]
(Background on this error at: http://sqlalche.me/e/e3q8)

我確信函數的輸入是完全正確的。 該功能:

def profile_stats():
    profile = vk.users.get(fields='counters')[0]['counters']
    stats.vk.write_profile(profile['friends'], profile['followers'], profile['audios'], profile['gifts'])

函數“stats.vk.write_profile”:

def write_profile(friends, followers, audios, gifts):
    session = Session()
    profile = session.query(Vk_profile).filter(Vk_profile.date == date.today()).first()
    if profile:
        profile.friends = friends
        profile.followers = followers
        profile.audios = audios
        profile.gifts = gifts
    else:
        profile = Vk_profile(friends, followers, audios, gifts)
        session.add(profile)
    session.commit()
    session.close()

模型:

class Vk_profile(Base):
    __tablename__ = 'vk_profile'
    id = db.Column(db.Integer, primary_key=True)
    friends = db.Column(db.Integer)
    followers = db.Column(db.Integer)
    audios = db.Column(db.Integer)
    gifts = db.Column(db.Integer)
    date = db.Column(db.Date)

    def __init__(self, friends, followers, audios, gifts):
        self.friends = friends
        self.followers = followers
        self.audios = audios
        self.gifts = gifts
        self.date = date.today()

你創建了你的數據庫嗎? db.create_all()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM