app

vue开发之路-自定义导航菜单Tabbar

人走茶凉 提交于 2019-12-20 15:56:37
vue开发之路-自定义导航菜单Tabbar 自定义导航菜单实现效果展示 目录结构 代码实现 Item.vue文件内容 Tabbar.vue 文件内容 在App.vue中引入自定义的Tabbar组件 Vue 实现Tabbar底部导航菜单示例代码下载地址 自定义导航菜单实现效果展示 自定义导航菜单实现效果图 目录结构 assets 放置图片素材 components 放置自定义组件 app.vue vue入口文件 代码实现 在 components 组件文件夹下新建 tabbar 文件夹,用来存储自定义的Tabbar组件 在新建的 tabbar 文件夹下新建 Item.vue 和 Tabbar.vue Item.vue文件内容 < template > < div class = "itemWarp flex_mid" @click = 'changePage' > < span v - show = '!change' > < slot name = 'normalImg' > < / slot > < / span > < span v - show = 'change' > < slot name = 'activeImg' > < / slot > < / span > < span v - text = 'txt' > < / span > < / div > < /

flask使用blinker信号机制解耦业务代码解决ImportError: cannot import name 'app',以异步发送邮件为例

无人久伴 提交于 2019-12-20 10:11:20
百度了大半天,不知道怎么搞,直到学习了blinker才想到解决办法,因为之前写java都是文件分开的, 所以发送邮件业务代码也放到view里面,但是异步线程需要使用app,蛋疼的是其他模块不能从app.py导入任何变量: 即: app.py是主文件,view.py是业务文件, 我需要在view中使用app中的变量,怎么办,百度了很多,没有找到方法 这里可以用信号实现,先记录一下: python3内置了blinker,可以直接使用,首先在view里定义信号: 然后在app.py里面连接需要使用的函数(这个函数需要使用app,所以只能写在appp.py里),app是可以导入其他模块的变量的: # Flask-Mail 中的 send() 函数使用 current_app ,因此必须激活程序上下文。 # 不过,在不同线程中执行 mail.send() 函数时,程序上下文要使用 app.app_context() 人工创建 def send_async_email(msg): print("---开始发送---") with app.app_context(): mail.send(msg) # 导入view 的信号量,并连接异步发送函数 signal.connect(send_async_email)# 高版本可以直接通过注解实现 # Flask-Mail 中的 send() 函数使用

EggJs+Vue服务端渲染实践

亡梦爱人 提交于 2019-12-20 09:28:32
最近需要把公司基于Vue进行开发的webView页面改造成ssr的。由于现有的node后台是基于EggJs开发的,如果改用其他脚手架搭建需要的成本也忒大了,这得加多少班啊,索性就自己瞎捣鼓一下吧。 我们先来看看当我们使用vue客户端渲染时一个页面的加载过程。首先是我们请求的index.html到达浏览器,然后浏览器再根据index.html中的script标签去请求js文件,请求到了js文件后开始执行Vue实例的初始化操作。 vue的实例初始化大体上需要经过: 实例初始属性设置,挂载createElement方法->beforecreate->initState中对Props/data声明响应式对象,初始化methods并bind执行上下文,对computed属性生成computed watcher->created->生成渲染watcher->执行updateComponent->执行render方法,通过之前挂载的createElement方法生成vnode节点->执行_update方法,调用_ patch _方法根据虚拟dom生成真实的dom节点->mounted 这么多步骤的处理之后,我们才能在浏览器上看到我们的页面,而且注意是每一个组件都需要经历这么多步骤才可以哦,所以如果在对首屏加载时间有一定要求的页面中我们还使用客户端渲染的方式去处理。那么大概,可能

软工网络15个人作业3——案例分析

天涯浪子 提交于 2019-12-20 09:12:09
集大通APP 第一部分:调研, 评测 1.下载并使用,描述最简单直观的个人第一次上手体验。 大一刚入学就下载集大通了,感觉这个app运行特别慢,某些功能要反复进去好几次才能成功,其实不是很喜欢集大通这个app,要不是因为它能交网费、查课表,查成绩,分分钟卸载。 2.按照《构建之法》13.1节描述的 bug 定义, 找出几个功能性的比较严重的 bug,至少2个。 - 集大通有时候某些功能不能用,有时候又恢复正常,不知道是什么原因,无论怎么点都显示unknown app; - 关于课程表,集大通有添加的功能,但是没有删除修改的功能,有些课程跟实际情况有出入都不能够修改。 3.用专业的语言描述 (每个bug 不少于 40字),如有必要, 可以配图。 相信每个同学的朋友中一定有人需要用这样的软件, 选择一个朋友(用户)进行采访,并加以记载。 提示: 采访提要 介绍采访对象的背景和需求(他们为何要使用该软件,例如开博客,读博客,给博客点评,她有什么痛点,她还有别的需求么) 让采访对象使用10 – 30 分钟该APP的功能 (请上传照片证明用户的确正在使用, 远程采访的同学请让别人帮忙照相) 描述用户使用这个产品的过程,用户的问题解决了么?软件在数据量/界面/功能/准确度上各有什么优缺点?用户体验方面有问题么? 用户对产品有什么改进意见? 4.请选择一个结论:经过这么多工作

shareinstall-ios集成方法

耗尽温柔 提交于 2019-12-20 04:03:53
1、产品原理 精确的App安装来源与携带参数安装 :shareInstall的核心价值在于,帮助Android/iOS开发者通过shareInstall提供的sdk,精确的获取app每一次安装的分享(或推广)来源。原理如下:开发者在分享的h5页面上集成 shareInstall web sdk,发布分享链接时在url上动态的拼接任意的自定义参数(如推广渠道号,邀请码等等);当某一终端访问该h5页面时,shareinstall web sdk将同时确定该设备的个性化信息和采集自定义参数,上传至shareInstall服务器, 待用户通过该h5页面安装app后首次打开时(如当前设备已安装该app,将直接拉起该app并传递参数),使用shareInstall Android/iOS sdk从shareInstall服务器再取回暂存的自定义参数。 一键拉起功能:shareInstall通过标准的scheme、universal link 等技术,在app已安装的情况下,从各种浏览器(包括微信、QQ、新浪微博、钉钉等主流社交软件的内置浏览器)拉起app并传递自定义参数,避免重复安装,如没安装则调至appStore或应用宝下载app,下载完毕唤起app的相应页面。 2、iOS SDK集成 1、初始化 1.1 获取shareinstall 的AppKey 登录shareinstall后台管理

第一阶段对各小组的评价及建议

好久不见. 提交于 2019-12-20 02:02:28
这周进行了第一阶段工作的展示和交流,各个小组都展示了他们在第一阶段冲刺中实现的成果,在这些成果中大家有好有坏,下面是我们对这次交流会的各个小组的展示的评价及建议: 一、自身成果认识 我们小组在这次交流会中,看到每组同学展示的成果,最多的看到的是自己的不足,与某些小组的成员有较大的差距,总的来说,我们小组认为我们还是没有明确的认清自己的软件所要实现的方向,并没有实现创新点的突破,而且界面布局差没有实现自己想要达到的结果,第二阶段还需要更加努力的去改进自己的程序。 二、微食堂 主要展示的第一阶段的成果是有关本校食堂的窗口的一个食物及价格分配情况,实现的是前端的界面设置,没有后台中上传图片与用户连接,总体完成情况较好,在界面设计上看上去我们组内认为较好,建议可以将窗口的提示设计的更明显些,在界面中主要看到的图片所占的界面比例太大影响了对窗口信息的观看。对于后台功能的建议我们希望能将用户和卖家的注册进行权限的不同分配,如果能对用户信息实现安全的措施,觉得会更加试用!总体评价:优秀 三、微记账 主要展示了对每笔支出原因日期的添加,相对比较好,没有连接数据库所以认为有较大的欠缺,我们小组认为记账的关键就是对数据库的管理,所以感觉有些失望,界面相对简单,布局比较合理。总体评价:中 四、错题本 错题本主要展示了一个错题记录功能的软件,我们小组认为这个软件完成情况不是很好,就界面而言过于简单

VUE执行流程

感情迁移 提交于 2019-12-20 01:05:26
参考内容链接: https://www.cnblogs.com/hello-wuhan/p/6961948.html -----vue加载流程的说明 https://blog.csdn.net/chuanxincui/article/details/88572727 -----vue加载文件作用的说明 流程: 1. 先加载index.html;他里面有个div样式的加载,那就得找js文件; 备注:看看index.html目录位置,它位于最顶层,根据经验也该最先加载它; 2. 然后加载js文件,就到src目录下查找,src下就一个js文件,叫main.js,就是它了; 3. 参考别人的说明:main.js文件中给id=“app”的div创建一个Vue的实例,该实例中有一个名叫“APP”的组件,该组件通过vue-router将Hello.vue中的模板注入到App.vue的模板中; 这感觉就像: 声明Router构造函数的参数为Compoents对象,创建对象 rr=new RouterList.add("HelloWord.vue"); 声明App构造函数的参数为Router指向,创建对象 aa=new App(rr); 声明Vue构造函数的参数为App对象,创建对象 vv=new Vue(aa); 来源: CSDN 作者: 小小梦里花007 链接: https://blog

Flask快速入门(20) — 多app应用

走远了吗. 提交于 2019-12-20 00:09:48
Flask快速入门(20) — 多app应用 之前一直是一个app,如果有多个app该怎么进行分发呢? from werkzeug.wsgi import DispatcherMiddleware from werkzeug.serving import run_simple from flask import Flask,current_app # 注册两个app app1 = Flask('app01') app2 = Flask('app02') @app1.route('/index') def index(): return 'app01' @app2.route('/index') def index(): return 'app02' dm = DispatcherMiddleware(app1,{ '/sec':app2, }) if __name__ == '__main__': run_simple('localhost',5000,dm) dm是DispatcherMiddleware实例化对象,所以dm()调用时执行的是 __call__ 方法。源码: # dm = DispatcherMiddleware(app1,{'/sec':app2}) def __init__(self, app, mounts=None): self.app = app

从拼多多的新玩法,看APP邀请方案的成败

主宰稳场 提交于 2019-12-19 19:02:54
听说,最近你们的聊天记录都是长这样子的: 有多少个一年都没聊过天的好友,跑过来和你说: “亲,麻烦帮忙点一下哦~” “急急急!帮我点一下就好啦,爱你哟~” “就差你了!帮我点一下我就能领现金啦!” 没办法,既然你都这么诚心诚意地请求了,我只好勉为其难地点进去了…… 结果,哇!这也太大手笔了吧!一下子就拿到了小一百的福利! 但是,只有累积到100元才能提现哦~ 于是我开始疯狂地转发分享,跪求各位老铁帮忙点一点,把混迹互联网多年的脸皮都贡献出去了,结果,进账的钱数从几十块降到几块,最后变成一分一分的。 那一刻,我第一次体会到我离100元那么近,可又离100元那么远…… 这几天,我们都无偿成为了拼多多的“编外员工”,积极地转发,疯狂地参与活动,直到忙活半天,什么都没收获到才不甘心地放弃!可,拼多多却疯狂吸入新用户…… 我恨!这就是别人家的营销啊! 不得不说,拼多多在这方面的确是王者选手,“通过分享让新用户和老用户同时获利”是他们的运营手段。 让每一个点进链接的人,都主动成为推广APP的“免费劳动力”,用户会通过聊天对话、群分享、朋友圈等方式多次传播,积极地拉亲朋好友甚至是陌生人参与,因为在用户看来,他的分享是一种双赢。 像这样的邀请机制,就是看中了人性中的“趋利心理”,然后开始不断裂变,最终形成病毒式的传播! 当然了,目前市场上的邀请形式有很多种,比如说邀请短信,二维码图片

diango创建一个app

感情迁移 提交于 2019-12-19 18:34:43
创建一个app terminal里执行命令 python manage.py startapp app名称 注册 settings配置 INSTALLED_APPS = [ 'app01', 'app01.apps.App01Config' # 推荐写法 ] 来源: https://www.cnblogs.com/-xct/p/12069409.html