V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
RadAsm
V2EX  ›  Python

最近正在做评论栏,有这样一个需求

  •  
  •   RadAsm · 2015-11-13 17:18:16 +08:00 · 2998 次点击
    这是一个创建于 3090 天前的主题,其中的信息可能已经有所发展或是发生改变。

    使用 flask 做 web 站点,嗯,是这样的:

    用户输入其用户名(name),评论( comment ),然后提交表单,会看见自己的评论嘛~,评论区的用户的头像是根据用户的 name 的首字母(暂且只允许英文 name 吧)在后台生成的,然后,显示在评论区用户头像上。

    有 user 表,可以存储用户的头像数据等等

    这个需求怎么实现,想了好久,主要还是在表单提交,生成用户头像并存储到表中后,怎么样主动将头像的数据向前端发送。

    19 条回复    2015-11-14 12:55:44 +08:00
    kumakiti
        1
    kumakiti  
       2015-11-13 17:28:44 +08:00
    不能直接返回生成的头像吗?
    RadAsm
        2
    RadAsm  
    OP
       2015-11-13 17:29:44 +08:00
    @kumakiti

    生成头像比较耗时,总是拿不到。。。,是个叉叉。。。
    b821025551b
        3
    b821025551b  
       2015-11-13 17:39:45 +08:00
    英文 name 只有 52 张图片,直接根据首字母判断该读哪个头像返回 url 呗
    laosb
        4
    laosb  
       2015-11-13 17:46:02 +08:00
    不必要后台生成,直接前端就能做。
    RadAsm
        5
    RadAsm  
    OP
       2015-11-13 17:46:43 +08:00
    @b821025551b

    嗯,我希望字体样式,背景色什么的都不同,所有是后台生成的。。
    qiayue
        6
    qiayue  
       2015-11-13 17:47:12 +08:00
    你生成的用户头像也没必要存到数据库吧
    RadAsm
        7
    RadAsm  
    OP
       2015-11-13 17:47:22 +08:00
    @laosb
    吖, how ?我的前端知识比较欠缺
    qiayue
        8
    qiayue  
       2015-11-13 17:48:20 +08:00
    你可以按照用户 ID 或者 ID 的 hash 存储头像对应的图片
    这样其实你在图片生成之前,就已经知道他的头像的地址了
    RadAsm
        9
    RadAsm  
    OP
       2015-11-13 17:48:54 +08:00
    @qiayue

    你这么说也对吖,不过我还是希望能存放起来。 O(∩_∩)O
    RadAsm
        10
    RadAsm  
    OP
       2015-11-13 17:52:28 +08:00
    @qiayue
    恩,先谢谢你~
    不过我还想问下:然后在何时触发,怎么触发去向服务器获取。。。
    raysmond
        11
    raysmond  
       2015-11-13 17:54:33 +08:00
    不用存吧,根据首字母决定,只要注册了前端不就决定了头像么? URL 都是固定的
    feiyuanqiu
        12
    feiyuanqiu  
       2015-11-13 17:57:43 +08:00
    在数据库 user 表增加一列存头像图片名,提交评论的时候,检查用户是否已存在头像,不存在则生成,将图片保存到服务器的静态文件目录(或者专门的图片服务器),并将生成的图片名保存到数据库

    前台页面放头像的地方直接放上用户的头像图片路径就行了
    sobigfish
        13
    sobigfish  
       2015-11-13 17:59:59 +08:00
    @b821025551b 26*26 不止 52 张

    直接在浏览器端把字母 比如 RA 转成 canvas 不行么?


    是类似这种不?
    https://github.com/bachonk/UIImageView-Letters
    RadAsm
        14
    RadAsm  
    OP
       2015-11-13 18:01:10 +08:00
    @sobigfish
    好东西吖。。。谢谢
    gkiwi
        16
    gkiwi  
       2015-11-13 18:12:28 +08:00
    canvas 算是一种,不过楼主说需要自定义字体之类的。

    我觉得还可以这样子,先是在前端用首字母+div 加上个 css 模糊效果(马赛克),后台生成返回后,再替换过来,算是一种折中方案。
    不过话说这个的生成应该很快啊
    ericls
        17
    ericls  
       2015-11-14 07:49:00 +08:00
    为何要采用 python 生成头像? 直接在前端生成头像岂不更好?
    zhicheng
        18
    zhicheng  
       2015-11-14 10:58:58 +08:00
    你是说 TextArea.com 上那种默认头像?头像是 CSS 写的,颜色是 Python 的,如果你想要我可以把这部分代码给你。
    RadAsm
        19
    RadAsm  
    OP
       2015-11-14 12:55:44 +08:00   ❤️ 1
    @zhicheng
    哈哈 谢谢了 不过应该不需要了:-D
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5871 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 875ms · UTC 06:16 · PVG 14:16 · LAX 23:16 · JFK 02:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.