@功能

作者: 马梦里 | 来源:发表于2018-01-19 22:01 被阅读0次

由于 @ 是在回复中进行的,所以在回复的函数中添加此功能;

from models import Model
Model = Model

class Reply(Model):
    @classmethod
    def valid_names(cls):
        names = super().valid_names()
        names = names + [
            ('content', str, ''),
            ('topic_id', str, 0),
            ('user_id', str, 0),
        ]
        return names

    def user(self):
        from .user import User
        u = User.one(id=self.user_id)
        return u
  • 这里为什么添加 Model = Model 就不得而知了,其它类没有;
  • flask 里面数据的关系通过 id 来联结,与 django 不一样
from flask import (render_template, request, redirect, url_for, Blueprint, )

from models.mail import Mail
from routes import *

from models.reply import Reply
from utils import log

main = Blueprint('reply', __name__)

def users_from_content(content):
    # 不能解决 @在文本中间 比如 123@name abc,这样就不能获得name了
    parts = content.split(' ')
    users = []
    for p in parts:
        if p.startswith('@'):
            username = p[1:]
            u = User.one(username=username)
            users.append(u)
    return users
  • 获取用户名的方式有待商榷
# 有个 bug 如果回复内容中含有 @ ,而后面跟着不是用户名,将会报错
def send_mails(sender, receivers, content):
    for r in receivers:
        form = dict(
            title='你被 {} AT 了'.format(sender.username),
            content=content,
            sender_id=sender.id,
            receiver_id=r.id,
        )
        m = Mail.new(form)
        log(m)
  • 发送消息,即将数据保存到相应用户下
@main.route("/add", methods=["POST"])
def add():
    log('reply add')
    form = request.form
    u = current_user()

    # 发邮件
    log('before send mail', form)
    content = form['content']
    log('reply', content)
    users = users_from_content(content)
    log('reply', users)
    send_mails(u, users, content)
    log('after send mail')

    m = Reply.new(form, user_id=u.id)
    return redirect(url_for('topic.detail', id=m.topic_id))
  • 保存回复内容和 topic_id 就可以实现回复了,Topic 类会遍历下属回复;

相关文章

  • 敏捷漫画#82-功能!功能!功能!

    功能!功能!功能!(Features, Features, Features) 作者评论: 不要让自己成为一个功能...

  • 功能

    功能 函数是执行特定任务的自包含代码块。你给一个函数一个名字来标识它做了什么,这个名字用来“调用”函数在需要时执行...

  • 功能。

    Never,ever expect hackers to be able to read closed propr...

  • @功能

    由于 @ 是在回复中进行的,所以在回复的函数中添加此功能; 这里为什么添加 Model = Model 就不得而知...

  • 功能

    。哦工作

  • 功能

    厨房正中梁上挂着条咸腊鱼,去年腊月腌制的,已经四个月了。 老妈:这一段青黄不接缺菜,要不取下剁泡软了顶两天。 老爸...

  • 功能

    同样是刷子 有的用来刷牙 有的用来刷碗 有的用来刷鞋 有的却只能用来刷马桶

  • 功能

    功能(function):智能体如何工作?实体(embodiment):它们是用什么做的?互动(interacti...

  • 如何找到期望(功能)需求?

    产品功能包括基础功能、期望功能、亮点功能、无差别功能、反向功能。不同功能不同对策 ◆基础功能必做,要留足资源。 ◆...

  • 【469】家庭教育为孩子的人生奠基

    P56-65 家庭教育的功能:如认知功能、参照功能、熏陶功能、强化功能、筛选功能以及监督功能等。 ...

网友评论

      本文标题:@功能

      本文链接:https://www.haomeiwen.com/subject/adfooxtx.html