如果V2EX在今天才开始开发,会用什么Python Web框架? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
PythonSites
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
kwd98
V2EX    Python

如果V2EX在今天才开始开发,会用什么Python Web框架?

  •  
  •   kwd98 2014-01-22 17:03:45 +08:00 18801 次点击
    这是一个创建于 4367 天前的主题,其中的信息可能已经有所发展或是发生改变。
    第 1 条附言    2014-01-23 10:44:12 +08:00
    Livid本人的回复: "依然会用 Tornado,最大的坑其实是 MySQL,如果现在新开始的话,会更多依赖 Redis。"
    93 条回复    1970-01-01 08:00:00 +08:00
    whatsupbitch
        1
    whatsupbitch  
       2014-01-22 17:16:02 +08:00
    当然还是tornado我觉得
    shiny
        2
    shiny  
    PRO
       2014-01-22 17:18:47 +08:00
    如果标题换成这个会比较有意思:如果豆瓣在今天才开始开发,会用什么 Python Web 框架?
    kwd98
        3
    kwd98  
    OP
       2014-01-22 17:38:46 +08:00
    @shiny 豆瓣内部新项目有很多是用django/flask http://www.weibo.com/1582970173/Al9YgDvo1
    kwd98
        4
    kwd98  
    OP
       
    @whatsupbitch tornado性能确实很好,但是社区就不知道。
    passluo
        5
    passluo  
       2014-01-22 17:46:54 +08:00
    flask 很多东西都要自己修修改改才能用。。。。
    kwd98
        6
    kwd98  
    OP
       2014-01-22 17:56:52 +08:00   2
    Flask给你很多自由,让你自己做决定。Django可能就是convention over configuration。
    kwd98
        7
    kwd98  
    OP
       2014-01-22 17:57:08 +08:00
    @passluo Flask给你很多自由,让你自己做决定。Django可能就是convention over configuration。
    davepkxxx
        8
    davepkxxx  
       2014-01-22 18:05:50 +08:00
    还会用python吗?
    passluo
        9
    passluo  
       2014-01-22 18:07:30 +08:00
    太多的自由也是一种痛。
    rqrq
        10
    rqrq  
       2014-01-22 18:10:36 +08:00   1
    @shiny 豆瓣创始人曾经说过如果再来一次会选php
    kwd98
        11
    kwd98  
    OP
       2014-01-22 18:13:01 +08:00
    @davepkxxx 像Go什么的,在并发方面确实是高上大。。。。。。但是"Life is short, You need Python"
    kwd98
        12
    kwd98  
    OP
       2014-01-22 18:16:27 +08:00
    @rqrq @shiny 出处在哪? 阿北没用过PHP啊。 他在豆瓣上的回答: http://www.douban.com/group/topic/1000645/
    kwd98
        13
    kwd98  
    OP
       2014-01-22 18:18:08 +08:00
    @rqrq @shiny 还有阿北06年的回答: 如果现在重新开发douban,会选择什么开发框架? - http://www.douban.com/group/topic/1031810/
    kwd98
        14
    kwd98  
    OP
       2014-01-22 18:23:39 +08:00
    @passluo 适合长期项目吧,像Quora当初选择Pylons就是因为它给你很多的自由。

    https://www.quora.com/Quora-Infrastructure/Why-did-Quora-choose-to-develop-in-Pylons
    kwd98
        15
    kwd98  
    OP
       2014-01-22 18:26:16 +08:00
    @rqrq @shiny 还有Adam D'Angelo(Facebook第一任CTO)讲为什么选择Python而不是PHP去开发Quora? https://www.quora.com/Quora-Infrastructure/Why-did-Quora-choose-Python-for-its-development
    shiny
        16
    shiny  
    PRO
       2014-01-22 18:26:24 +08:00
    @rqrq 请求来源?谢谢。
    @kwd98 另外好奇的是为什么豆瓣不用 Tornado?
    kwd98
        17
    kwd98  
    OP
       2014-01-22 18:39:17 +08:00 via Android   1
    @shiny 不是内部人士,不知。但Tornado是09年才开源的(Wiki)。
    RIcter
        18
    Icter  
       2014-01-22 18:54:13 +08:00
    当然用Django..
    kwd98
        19
    kwd98  
    OP
       2014-01-22 19:01:15 +08:00 via Android
    @RIcter Django确实很多公司都在用。但每次听别人说Jinja2、SQLAlchemy比Django自带的要好,就。。。
    CMGS
        20
    CMGS  
       2014-01-22 19:05:41 +08:00
    FLASK自己改改凑合着能用的
    Bottle得改更多
    别给我提Django
    Tornado最大的问题其实是写法别扭
    以上
    RIcter
        21
    RIcter  
       2014-01-22 19:06:39 +08:00
    @kwd98 Django轮子少啦,我还用web.py我会说...
    loveminds
        22
    loveminds  
       2014-01-22 19:08:14 +08:00 via Android
    @kwd98 嗯,自定义
    kwd98
        23
    kwd98  
    OP
       2014-01-22 19:16:10 +08:00 via Android
    @CMGS 你不喜欢Django的原因?
    passluo
        24
    passluo  
       2014-01-22 19:16:18 +08:00
    嗯,如果你一开始就打算长线的开发,提前做好各种准备和设计,打好基础,自己造适合自己的轮子,OK。

    如果是敏捷开发,用各种flask插件快速架构。。。呵呵吼。。。。那坑大得你爬都爬不出去。。。等着后面重构吧。。。。


    不过总的来说还是很喜欢Flask的。
    passluo
        25
    passluo  
       2014-01-22 19:17:47 +08:00
    @CMGS 阿富汗也能上V2EX??(笑。。。
    fanzeyi
        26
    fanzeyi  
       2014-01-22 19:23:09 +08:00
    @kwd98 Django 太重

    @shiny 了解下历史,亲,豆瓣已经快十年了,Tornado才诞生几年?事情要有个先后。

    // 以上回复

    web.py 和 Tornado 现在回头看看都觉得写法挺别扭的,至于 Quixote ,已经不是觉得写法别扭的问题了,和这些新框架不在一个逻辑上..
    kwd98
        27
    kwd98  
    OP
       2014-01-22 19:26:52 +08:00 via Android
    @passluo 当自己做很多架构上的决定时 ,经验确实很重要。要是新手难免掉坑了,这时要靠社区拉一把了。。。Kenneth Reitz讲的那篇Flasky Goodness对我的影响蛮深的 https://speakerdeck.com/kennethreitz/flasky-goodness
    dongk
        28
    dongk  
       2014-01-22 19:27:56 +08:00
    @Livid 会自己造个轮子
    shiny
        29
    shiny  
    PRO
       2014-01-22 19:30:23 +08:00
    @fanzeyi 是指新功能呀亲!! 看三楼回复好吗亲!!
    kwd98
        30
    kwd98  
    OP
       2014-01-22 19:44:13 +08:00
    @fanzeyi Django相比其他框架确实比较重。但对做传统的Content-Heavy Sites有很大的优势。05年DHH就说Rails是做Web App用的,而Django是做用来做Website。(那时他和Django创造者Adrian Holovaty进行演讲和Q&A - Snakes and Rubies: http://www.youtube.com/results?search_query=Adrian%20Holovaty%20dhh&sm=3)

    但是在DjangoCon 2012 - BDFL Keynote上,Adrian Holovaty有提到未来的Django是朝Web App趋势走(视频26:24 -
    )。

    你现在的用的是?
    rqrq
        31
    rqrq  
       2014-01-22 19:51:44 +08:00
    @kwd98
    @shiny
    我在上面发言之前找过证据没找到...但是我又的确记得他说过“python不适合页面比较复杂的网站,如果重新开始会使用php”这样的话。
    你们就当没这回事吧。
    kwd98
        32
    kwd98  
    OP
       2014-01-22 19:52:44 +08:00
    @dongk 联想起了他10年在ifanr的访谈 http://www.ifanr.com/22202
    clino
        33
    clino  
       2014-01-22 20:55:20 +08:00
    uliweb 吧, hoho~ 我觉得这个最棒
    kwd98
        34
    kwd98  
    OP
       2014-01-22 21:09:03 +08:00
    @clino 有听说过。跟其他框架比,有没有什么特别的优点?
    fanzeyi
        35
    fanzeyi  
       2014-01-22 21:18:41 +08:00
    @shiny 哦,文化问题,豆瓣里还有不少项目是用的 Quixote 呢,豆瓣的 AE 发展起来的时候,Python 的 Web 框架世界已经是 Flask 为主流了(除去 Django 不说的框架),所以是 Flask/Django 为主,如果豆瓣的 AE 早诞生几年,或许是 Tornado 也说不定。

    @kwd98 就我个人的看法,Django 和 Rails 都是一个属性,敏捷类的框架,如果你想快速的解决一个问题,建立一个网站,那 Django 和 Rails 还是很适合,但是若需要考虑更多的问题,那 Django 就不适合,没写过 Rails ,不评论 Rails 是否合适。
    shiny
        36
    shiny  
    PRO
       2014-01-22 21:24:14 +08:00
    @fanzeyi 豆瓣阅读、东西、阿尔法城、达络也都还比较新吧,一部分产品独立性非常强,不清楚是否受历史影响(或者开发者熟悉什么就用什么)。
    guotie
        37
    guotie  
       2014-01-22 21:27:10 +08:00
    martini of golang
    clino
        38
    clino  
       2014-01-22 21:31:35 +08:00
    @kwd98 特点和优点在于"可重用性,可配置性和可替换性", 介绍看: http://limodou.github.io/uliweb-doc/zh_CN/introduction.html
    全的文档看这里: http://limodou.github.io/uliweb-doc/zh_CN/index.html
    kwd98
        39
    kwd98  
    OP
       2014-01-22 21:35:06 +08:00
    @fanzeyi 感觉Django很多大的网站都在用,Disqus、Instagram、OpenStack、Pinterest 、Rdio、BitBucket等。做长期项目用Django肯定会有很多限制,像自身的ORM跟Template System就一直用来和SQLAlchemy和Jinja2比。现在流行前端MVC+后端提供REST API,Django框架确实有点庞大不灵活。但像Django Rest Framework这样的第三方插件已经足够优秀好用了。Django的用户社区算是一大卖点。。。。。。
    fanzeyi
        40
    fanzeyi  
       2014-01-22 21:35:44 +08:00   1
    @shiny 独立性只是从产品上看起来的,这些基本上都是 Quixote 如果我没记错的话。

    教授说的 Django/Flask 多指的是内网的一些东西,外面能访问到的大部分都是 Quixote ,也有一点点 Django 据我所知,Flask 应该是没有的。
    kwd98
        41
    kwd98  
    OP
       2014-01-22 21:49:23 +08:00
    @guotie 学过Python之后,接触Golang有什么感觉?有什么不同吗?
    shiny
        42
    shiny  
    PRO
       2014-01-22 22:00:08 +08:00
    @fanzeyi 阿尔法城甚至用 oAuth2 来登录,和独立应用已经没什么区别了吧?
    tomnee
        43
    tomnee  
       2014-01-23 00:16:36 +08:00   1
    其实长远来看,框架的很多东西都会被重写,flask就主张读其源码,既然以后总要删删改改,倒不如选一个像webpy,flask的轻框架。你可以很容易的知道哪一部分出了问题。
    ericFork
        44
    ericFork  
       2014-01-23 00:47:43 +08:00
    感觉有点歪楼了,不是在讨论 v2ex 吗……

    @CMGS 你回来了?
    CMGS
        45
    CMGS  
       2014-01-23 02:41:08 +08:00
    @kwd98 如果你处理过Django使用MySQLdb内部API导致换PyMySQL出bug这种问题的话……我一直不认为Django是个良好设计的框架,各层耦合太深,诚然起手是快,问题是做服务不会给你只有起手的机会的。

    @passluo 我在迪拜机场了,不出意外明天就能到HK
    @ericFork 圣驾要恭迎我么!我在迪拜机场了明天出现在HK!
    CMGS
        46
    CMGS  
       2014-01-23 02:43:38 +08:00   1
    而且@kwd98 我想说的是快盘也用Django……怎么用还是得看开发者……快盘这边我知道的就是Django拆成了Gateway,所以你列举的那几个例子我想或多或少都把Django拆得七七八八的了。当然这是有成本的,所以如果你想长线开整的话一开始用Django并非一个很好的选择。

    至于我为啥知道快盘的服务端是用Django写的……那就是另外一个故事了 = =
    Livid
        47
    Livid  
    MOD
    PRO
       2014-01-23 04:59:57 +08:00 via iPhone   3
    依然会用 Tornado,最大的坑其实是 MySQL,如果现在新开始的话,会更多依赖 Redis。
    mahone3297
        48
    mahone3297  
       2014-01-23 07:23:44 +08:00
    @RIcter 上次用web.py开发了一个很小的项目,感觉什么都要自己动手,应该也有很多地方没考虑周到。。。现在想想,感觉应该用Django开发。。。和你的想法刚好相反,指教下?我不太懂python。。。
    dcoder
        49
    dcoder  
       2014-01-23 07:51:50 +08:00
    @Livid MySQL坑是怎么回事?
    kwd98
        50
    kwd98  
    OP
       2014-01-23 08:17:48 +08:00
    @tomnee Flask就像前面有人说过的一样,要是没什么经验,在架构上没设计好,掉坑的可能性比较大。
    kwd98
        51
    kwd98  
    OP
       2014-01-23 08:27:21 +08:00   1
    @dcoder 大多数Python程序员还是推荐PostgreSQL https://twitter.com/alex_gaynor/status/397961679712944128
    inyfee
        52
    inyfee  
       2014-01-23 08:29:59 +08:00
    如果是我,当选择python时,就会选择tornado .
    fucker
        53
    fucker  
       2014-01-23 08:49:48 +08:00
    表示一直用webpy,偶尔会用bottle。但是tornado,django都是测试了之后觉得不合口味,而且自己瞎做一些小项目而已,webpy和bottle确实很轻便。
    kwd98
        54
    kwd98  
    OP
       2014-01-23 08:57:19 +08:00
    @yeelone 具体原因? 性能? 还有你有用过其他框架吗, 相比之下觉得如何?
    kwd98
        55
    kwd98  
    OP
       2014-01-23 08:59:02 +08:00
    @fucker 个人网站确实适合不过了。但是,如果说你打算做个大的项目,你更倾向于?
    clino
        56
    clino  
       2014-01-23 09:08:34 +08:00
    @kwd98 我觉得livid说的不光是mysql,而是关系型数据库比较坑
    mimzy
        57
    mimzy  
       2014-01-23 09:10:24 +08:00   1
    RIcter
        58
    RIcter  
       2014-01-23 09:35:20 +08:00
    @mahone3297 web.py轻嘛..我现在开发的一个比较大的项目是用django,web.py就是blog..
    mahone3297
        59
    mahone3297  
       2014-01-23 09:40:24 +08:00
    @RIcter 对,轻,我当时也是这样想的,所以选了web.py,呵呵。
    kwd98
        60
    kwd98  
    OP
       2014-01-23 09:44:40 +08:00
    @clino 那就只能说不同场景用不同类数据库。论稳定性,RabbitMQ跟好。How Instagram Feeds Work: Celery and RabbitMQ - http://blogs.vmware.com/vfabric/2013/04/how-instagram-feeds-work-celery-and-rabbitmq.html
    pythonee
        61
    pythonee  
       2014-01-23 10:04:12 +08:00
    没有人说pyramid吗
    RIcter
        62
    RIcter  
       2014-01-23 10:10:09 +08:00
    @mahone3297 但是轮子少到不能忍,各种造轮子
    kwd98
        63
    kwd98  
    OP
       2014-01-23 10:33:35 +08:00
    @mahone3297 @RIcter web.py用户社区如何? 像Flask框架虽小,但GitHub上第三方插件很多。
    kwd98
        64
    kwd98  
    OP
       2014-01-23 10:37:12 +08:00
    @pythonee 前面有提到过Quora用的是Pylons。码农周刊也有分享过 http://www.weibo.com/1894238970/ArPUPuTgq
    pynix
        65
    pynix  
       2014-01-23 10:39:23 +08:00 via Android   1
    说不定会用rails
    RIcter
        66
    RIcter  
       2014-01-23 10:42:04 +08:00
    @kwd98 说多了都是泪
    felinx
        67
    felinx  
       204-01-23 10:43:35 +08:00
    @Livid 呵呵,我们重度使用redis
    ipconfiger
        68
    ipconfiger  
       2014-01-23 11:09:46 +08:00
    @felinx 有没有好的群集方案?
    cyberscorpio
        69
    cyberscorpio  
       2014-01-23 11:13:18 +08:00
    web.py 创始人不是离世了么,它的前途在哪里?
    tan9le
        70
    tan9le  
       2014-01-23 11:17:20 +08:00
    kwd98
        71
    kwd98  
    OP
       2014-01-23 11:26:29 +08:00   1
    @cyberscorpio aaronsw的不幸确实对webpy有影响,但开源项目都是很多core committers的。相同情况也发生在yum开源项目 https://news.ycombinator.com/item?id=6013989
    cyberscorpio
        72
    cyberscorpio  
       2014-01-23 11:26:48 +08:00
    @tan9le 感觉提交很不活跃,最多的提交者是个三哥。btw,从相貌上来看,Aaron Swartz 好像也是个三哥。
    mahone3297
        73
    mahone3297  
       2014-01-23 12:13:30 +08:00
    @RIcter 哈哈,是的,比较辛苦。。。造轮子。。。

    @kwd98 感觉用户社区不怎样。。。。
    clino
        74
    clino  
       2014-01-23 12:26:12 +08:00
    @kwd98 redis 和 rabbitmq 摆在一起比较? 只能比较用于消息队列的这种用途吧? rabbitmq 能有数据库的功能来和redis比较?
    kwd98
        75
    kwd98  
    OP
       2014-01-23 12:34:53 +08:00 via Android
    @clino 对, 就信息队列而言。
    clino
        76
    clino  
       2014-01-23 13:49:44 +08:00
    @kwd98 如果redis作为mysql的替代品来用,那消息队列这部分在这种替代里是不重要的
    mengzhuo
        77
    mengzhuo  
       2014-01-23 13:59:27 +08:00
    必须还是Tornado,

    最近整CouchDB,觉得未来的趋势是
    数据库和app可能会深度整合,前后端完全分离
    kwd98
        78
    kwd98  
    OP
       2014-01-23 14:19:28 +08:00
    @mengzhuo RESTful兴起再加上前端MVC框架流行后,前后端就分离了。
    fucker
        79
    fucker  
       2014-01-23 14:56:07 +08:00   1
    @kwd98 webpy吧,用lighttpd或者nginx做代理,N个端口或者N台服务器协同工作。
    听说django做大型项目很不错,我个人也没尝试过。webpy做小型的确实靠谱,大型的项目可以拆分为若干个小项目嘛。当然某些项目不大适合,纯属个人想法哈。
    dcoder
        80
    dcoder  
       2014-01-23 16:23:58 +08:00
    @mimzy 多谢!
    xjay
        81
    xjay  
       2014-01-23 21:54:58 +08:00
    gevent+itty,最近很喜欢这个组合。
    kwd98
        82
    kwd98  
    OP
       2014-01-23 22:08:49 +08:00
    @xjay 该作者在很有Django界很有名。但框架明显倾向于自己造轮子。。。最大的优点是?
    wssgcg1213
        83
    wssgcg1213  
       2014-01-24 01:10:14 +08:00
    @RIcter →_→
    CMGS
        84
    CMGS  
       2014-01-24 02:15:41 +08:00
    @clino @dcoder MySQLdb的坑可不是关系型数据库的坑……而是Python走这种事件驱动不得不面对的阻塞问题
    RIcter
        85
    RIcter  
       2014-01-24 06:44:12 +08:00
    @wssgcg1213 ....看头像就知道是你了
    clino
        86
    clino  
       2014-01-24 09:03:06 +08:00
    @CMGS 不太理解"Python走这种事件驱动不得不面对的阻塞问题", 事件驱动应该也能支持大的并发才对,所以相关的性能应该不是问题吧, 那是开发起来太麻烦了?能解释一下吗?
    要是我就选择gevent ,协程方式的编程接口比较爽, 用同步的方式写异步的程序,用这个对比事件驱动的可以有优越感,hoho
    guotie
        87
    guotie  
       2014-01-24 09:22:43 +08:00
    @kwd98 golang更简单,更直接,效率更高!

    有些python代码写的很不易懂,尤其是大量使用yield的代码
    clino
        88
    clino  
       2014-01-24 09:46:50 +08:00
    @guotie lua里也是用类似的coroutine.yield吧. go 里的形式是怎么样的? 我觉得主要是coroutine本身的运行过程复杂才会难懂的吧.
    kwd98
        89
    kwd98  
    OP
       2014-01-24 10:03:31 +08:00
    @clino Rob Pike: Google I/O 2012 - Go Concurrency Patterns
    看完就会觉得golang在并发方面是高上大。
    guotie
        90
    guotie  
       2014-01-24 10:03:43 +08:00   1
    go的并发很简单:
    go xxxx

    go的并发协程之间的通信用channel,很直接。

    nsq是一个实时消息队列,代码大量使用了并发和channel通信,但是代码很容易读懂。
    duoduo3369
        91
    duoduo3369  
       2014-01-24 12:10:04 +08:00
    django也可以前后端彻底分开开发啊 后端用django rest 前端可以自选高大上的mvc(backbone,anguler),或者用任何前端实现
    kwd98
        92
    kwd98  
    OP
       2014-01-24 12:18:03 +08:00
    @duoduo3369 恩。DRF的generic view和viewset很方便,可谓写REST API利器。前端像AngularJs这样只要在Template里用Verbatim或者直接到AngularJS里改$interpolate。
    clino
        93
    clino  
       2014-01-24 14:59:18 +08:00
    @kwd98 @guotie 视频看了一半,go提供的channel看起来不错,channel select这种都预置在语言里了,挺好的
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3369 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 32ms UTC 00:40 PVG 08:40 LAX 16:40 JFK 19:40
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86