我最近在软件开发过程中一直在努力,并且在我的意愿下弯曲芹菜取得了一些成功.
我已成功使用它发送电子邮件,并且刚刚尝试使用几乎完全相同的代码(在重新启动所有进程之后等)通过Twilio发送短信.
但是我一直收到以下问题:
File "/Users/Rob/Dropbox/Python/secTrial/views.py", line 115, in send_sms
send_sms.delay(recipients, form.text.data)
AttributeError: 'function' object has no attribute 'delay'
Run Code Online (Sandbox Code Playgroud)
我的代码如下:
@celery.task
def send_email(subject, sender, recipients, text_body):
msg = Message(subject, sender=sender)
for email in recipients:
msg.add_recipient(email)
msg.body = text_body
mail.send(msg)
@celery.task
def send_sms(recipients, text_body):
for number in recipients:
print number
num = '+61' + str(number)
print num
msg = text_body + 'this message to' + num
client.messages.create(to=num, from_="+14804054823", body=msg)
Run Code Online (Sandbox Code Playgroud)
send.email.delay从我的views.py调用时效果很好,但send_sms.delay每次都失败并出现上述错误.
任何有关故障排除的帮助表示赞赏.
- 按照要求:
@app.route('/send_mail', methods=['GET', 'POST'])
@roles_accepted('Admin')
def send_mail():
form = SendMailForm(request.form) …Run Code Online (Sandbox Code Playgroud) 我正在尝试从 sql-alchemy 中的多对多关系中删除一个子对象。
我不断收到以下错误:
StaleDataError: DELETE statement on table 'headings_locations' expected to delete 1 row(s); Only 2 were matched.
Run Code Online (Sandbox Code Playgroud)
我查看了一些现有的堆栈交换问题(SQLAlchemy DELETE 错误由具有相同关系的延迟加载和动态版本引起,SQLAlchemy StaleDataError 在删除通过 ORM 插入的项目时发生 sqlalchemy.orm.exc.StaleDataError,SQLAlchemy Attempting两次删除多对多次要关系,从 MySQL 中的多对多关系删除) 以及阅读文档,但无法弄清楚为什么它不起作用。
我定义关系的代码如下:
headings_locations = db.Table('headings_locations',
db.Column('id', db.Integer, primary_key=True),
db.Column('location_id', db.Integer(), db.ForeignKey('location.id')),
db.Column('headings_id', db.Integer(), db.ForeignKey('headings.id')))
class Headings(db.Model):
__tablename__ = "headings"
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(80))
version = db.Column(db.Integer, default=1)
special = db.Column(db.Boolean(), default=False)
content = db.relationship('Content', backref=db.backref('heading'), cascade="all, delete-orphan") …Run Code Online (Sandbox Code Playgroud) 我有一个使用 SQL-Alchemy 的 Flask 应用程序。我有一个特定的字段,该字段设置为使用 python 方法在更新时修改它的内容。
代码如下:
def convert_markdown_to_html(context):
#pdb.set_trace()
return markdown2.markdown(context.current_parameters['content_markdown'])
Run Code Online (Sandbox Code Playgroud)
和模型代码:
class Event(db.Model):
__tablename__ = "event"
id = db.Column(db.Integer, primary_key=True)
event_name = db.Column(db.String, nullable=False)
event_details = db.Column(db.String, nullable=False, onupdate=convert_markdown_to_html) # will store html content
content_markdown = db.Column(db.String, nullable=True) # the markdown of event_details
event_date = db.Column(db.Date, nullable=False)
tickets_available = db.Column(db.Integer, nullable=False)
tickets_left = db.Column(db.Integer, nullable=False)
ticket_price = db.Column(db.Integer, nullable=True)
ticket_price_member = db.Column(db.Integer, nullable=True)
is_price = db.Column(db.Boolean())
attendees = db.relationship('Event_records', backref=db.backref('attendees'))
Run Code Online (Sandbox Code Playgroud)
问题是,有时会在不更新 content_markdown 的情况下更新事件。
发生这种情况时,应用程序会中断,因为
context.current_parameters['content_markdown']
Run Code Online (Sandbox Code Playgroud)
不存在
目前,我正在愚蠢地解决这个问题,在可以想象更新事件的任何地方都包含以下行: …