虽然还没有完工, 但我还是迫不及待的想“炫技”下我的项目 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
isno

虽然还没有完工, 但我还是迫不及待的想“炫技”下我的项目

  •  
  •   isno 2021 年 12 月 31 日 5509 次点击
    这是一个创建于 1575 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前因贴: t/825525#reply0

    项目简介: 以微商城+支付营销为主体的私域 saas 项目;

    项目网址: http:www.f-space.cn:6060

    • 体验账户: 13764891668 (我的手机微信,可以加我技术交流)
    • 密码: isno1026

    可得堆一下功能

    • 概况: 订单统计、流水统计
    • 订单: 包裹分拆、合并,改价、物流、搜索、线下店铺核销
    • ** 商品**: SKU 、分类、积分、品牌、运费模板
    • ** 顾客**: 顾客信息跟踪、会员等级、积分这块
    • ** 门店**: 线下分店管理、geo 经纬度位置、门店收银机接入
    • 优惠券: 普通券、复用券、指定商品、指定会员、指定生效时间
    • 活动: 满免、满赠券、满折、满减 指定会员、指定生效时间
    • 系统: 管理员设置、支付设置、基本设置
    • 物流:按体积、按重量、按地区不同价、调整价等
    • 其他 等等...

    项目的经历不说了,聊聊项目技术

    技术语言及框架

    Python2.7 及 Tornado 5.1

    选型原因:

    • Python 对于创业型项目太友好了,开发速度快,简单,成熟的库太多了
    • 在很久以前,听闻豆瓣是阿北一个人,便对 Tornado 产生了兴趣,熟悉之后,开发太简单了,灵活,对项目的控制力很强

    数据库 MongoDB + MongoEngine

    选型原因:

    • 不输 NoSQL 的性能,又比 NoSQL 更多的类型支持
    • 使用 MongoEngine 可以避免 文档型数据库松散的缺点,可以让我更好的定制业务模型,好用
    • 文档型的数据库太好用了

    搜索:

    ElasticSearch

    • 没得说,搜索界的一哥
    • 配合 Elasticsearch_DSL 定义业务文档模型, 清晰明确简单
    • 配合 MongoEngine 的信号机制,监听 Document save update 事件,数据实时同步到 ElasticSearch
    • 好用的呱呱叫

    分布式任务

    Celery + Redis

    用 Python 分布式任务系统可选的不多,但能选的都是精品, 用它做短信、订单处理、搜索更新、定时任务 效率也是呱呱叫

    任务监控 Supervisor

    Python 进程、Celery 任务、数据库、等等进程全给配上,没事登录后台看下任务情况,再看看异常 log ,有问题随时解决

    后台 JS 部分

    古老的技术 Angular 1.3 (用的唯一理由:熟悉的早,那时候 vue 还没有)

    后面想用 vue ,业务改造成本已经老高了

    结合定义的各种 directives ,再写业务 controllers ,效率也不低。

    到后台看下 html 源码, 都是密密麻麻的 controllers

    小程序部分

    电商类的项目,没得用,vant 用上

    小程序后端

    暂时用 python 写写,业务先跑起来,后面有量了,找机会改成 Golang ,这块的成本不高

    第 1 条附言    2021 年 12 月 31 日
    公共 CDN 可能有问题, 后面换个私有的 CDN

    对项目或者技术有想法的回个帖呗, 指导我一下
    第 2 条附言    2021 年 12 月 31 日
    我在一台 2 核 4G 的服务器上安装了:
    Nginx
    MongoDB
    ElasticSearch
    Redis
    Celery
    Supervisor
    Python 起了四个 Web 进程

    每年 1000 多块钱, 挺值
    第 3 条附言    2022 年 2 月 17 日
    [开源了] https://github.com/isno/saas
    把一些敏感信息删除了,本来想把项目美化一下,但不想搞了

    就兴趣的就看,没兴趣关,就这样。
    19 条回复    2022-01-19 13:19:36 +08:00
    smallyu
        1
    smallyu  
       2021 年 12 月 31 日
    这可是 v2 啊(狗头)
    vophan1ee
        2
    vophan1ee  
       2021 年 12 月 31 日
    项目什么的不多评价了,OP 真的很喜欢「呱呱叫」:)
    suyuyu
        3
    suyuyu  
       2021 年 12 月 31 日
    jsdelivr 全挂了
    isno
        4
    isno  
    OP
       2021 年 12 月 31 日
    @suyuyu 真是被公共 cdn 日晕了,之前用 bootcdn 挂,现在用 jsdelivr ,还是挂
    isno
        5
    isno  
    OP
       2021 年 12 月 31 日
    @vophan1ee 老兄,op 是个什么意思
    iOCZ
        6
    iOCZ  
       2021 年 12 月 31 日   1
    Python2.7 。。。。前途一片光明
    isno
        7
    isno  
    OP
       2021 年 12 月 31 日
    @iOCZ 用久了,木得办法,先搞业务,有迭代需求了,再搞成 python3
    makelove
        8
    makelove  
       2021 年 12 月 31 日
    新开项目为什么要用老的技术呢,py2 都快彻底淘汰了吧
    另外我做这种项目绝对不用 mongodb 而用关系数据库
    isno
        9
    isno  
    OP
       2021 年 12 月 31 日
    @makelove
    我的电脑是 15 年 mac ,服务器也是 7 、8 年的老服务器了,改成 py3 ,成本挺高。
    MongoDB 我当成了 NoSQL 用,里面的查询基本只有 findOne, 另外我用了 MongoEngine ,定义了强结构的 Document ,再结合 Reference , 可以满足基本的数据关系

    复杂的查找我也不用 Mongo , 我用 Elastic 啊

    以上 我觉得“挺好用的啊”
    isno
        10
    isno  
    OP
       2021 年 12 月 31 日
    再一个 Mongo 我太熟悉了,曾经用 Go 写了一个客户端,熟悉的很, 这个 DB 我太喜欢了
    JarvenI
        11
    JarvenI  
       2022 年 1 月 5 日
    打工累了,后续想自己找个能谋生的项目,也想着用 tornado 呢,刚好参考你这个技术栈,不过我可能得基于微信小程序;
    三线城市,打工不是人干的
    meiyoumingzi6
        12
    meiyoumingzi6  
       2022 年 1 月 7 日 via iPhone
    啊,这,不考虑用 debug 置成 false 么?


    Traceback (most recent call last):
    File "/usr/lib64/python2.7/site-packages/tornado-5.1-py2.7-linux-x86_64.egg/tornado/web.py", line 1568, in _execute
    result = self.prepare()
    File "/usr/lib64/python2.7/site-packages/tornado-5.1-py2.7-linux-x86_64.egg/tornado/web.py", line 2321, in prepare
    raise HTTPError(self._status_code)
    HTTPError: HTTP 404: Not Found
    meiyoumingzi6
        13
    meiyoumingzi6  
       2022 年 1 月 7 日
    还有就是 真的不考虑安全么?

    添加一个站点 直接塞 js 都可以执行, 那不等着被 XSS 注入
    sewer
        14
    sewer  
       2022 年 1 月 7 日
    @iOCZ 笑了
    craiiz
        15
    craiiz  
       2022 年 1 月 7 日
    2.7....
    BQsummer
        16
    BQsummer  
       2022 年 1 月 10 日
    @meiyoumingzi6 没转义?html 标签能运行?离谱...
    isno
        17
    isno  
    OP
       2022 年 1 月 10 日
    @meiyoumingzi6 项目还没完工,所有的的 XSS 都会再检测一遍
    现在这个主要是给小程序调试用的,等正式上线了,所有的数据全部清空。
    不过也谢谢你的提醒。
    isno
        18
    isno  
    OP
       2022 年 1 月 10 日
    @meiyoumingzi6 刚刚开启了转换,JS 注入的问题暂时不存在了
    qq1340691923
        19
    qq1340691923  
       2022 年 1 月 19 日
    建议登录时的用户名也就是手机号码,检验登录时去一下空格
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2998 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 77ms UTC 03:27 PVG 11:27 LAX 20:27 JFK 23:27
    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