如何用python开发移动App后台?需要掌握哪些技术

 我来答
育知同创教育
2018-07-05 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
展开全部
1、如果使用python语言,需要学习哪些知识?
python作为一门简单明了的语言,非常容易上手,语言层面不会太复杂,稍微有点难度的顶多就是装饰器、元类和少量函数式编程内容。要说学习的话,我觉得更多是一些编程方面通用的东西,比如:数据结构和算法、设计模式、操作系统、计算机网络之类的

2、选择什么样的python框架开发,这个框架的优势?
tornado,因为非阻塞io的原因,性能非常高,特别适合写后端API(App的后端应该都是rest风格的api),而且成熟稳定

3、如何部署服务器?本地服务器调试,以及公网服务器部署?
这个一两句说不清楚,涉及到运维、测试、开发诸多方面, 部署和测试推荐几个包:fabric、nose、unittest(python自带),版本管理推荐git,持续集成推荐使用docker+jenkins

4、如果使用python框架开发移动后台服务,在开发源码内使用哪种框架?mvc还是其它的,比如我返回json数据,每次json对象最外层有一些相同的东西,该如何处理?
MVC什么的,一般的框架都差不多的,tornado也是支持的,返回json有相同的东西,写个修饰器就完了

5、python的后台服务最大能支持多大的pv量会严重影响用户体验性能?
youtube、reddit、豆瓣、知乎这样的大流量网站都是python写的,觉得你的App的规模不太可能遇到性能问题,即使有也应该不是python的问题,而是任何语言都会有问题。毕竟web后端不是计算密集型,而是io密集型的,python和其他语言的区别不会太大吧,大量的pv是可以靠堆服务器堆出来的,如果是计算量比较大的任务,你可以考虑用c或c++写

6、如何兼顾 网页前端以及移动端 开发的后台?
用python写的API,网页和移动端都是可以调用啊,让前端学学React,就可以轻松解决前后端分离这个问题(PS: facebook 就是后端php + 前端React,淘宝也有在用nodejs做前后端分离)

7、有没用相关的案例,即用python开发的移动后台?有没有该问题的开源项目?
这个应该比较少,App后端开源的不常见,而且大部分是rest风格的api,很多时候会涉及到自身的业务和敏感信息应该不会开源的吧(又不是bbs或者博客程序)
从空去听8
2017-07-23 · TA获得超过7440个赞
知道大有可为答主
回答量:6907
采纳率:93%
帮助的人:5592万
展开全部
1、如果使用python语言,需要学习哪些知识?

就是Python语法、Python的一个Web框架及其他Web开发的知识(如数据库,缓存等),对初学者,架构方面一本 《大型网站技术架构:核心原理与案例分析(接地气的网站架构经验,网站生存技术心要,应对大数据挑战的干货分享!)》(李智慧...)【简介 就可以了。

2、选择什么样的python框架开发,这个框架的优势?

无论是Django、Flask、Pyramid等主流框架都可以作为后端Rest API服务的选择,选择哪个看团队开发者对框架的熟悉、对框架的设计哲学是否认同、框架的周边(也就是第三方扩展)环境是不是足够满足需要。

Tornado确实好,但是它其实作为web服务器时候才是异步IO的网络模型,并不是使用了Tornado作为web框架就是异步非阻塞了,但是以我的工作经验来看,有很多团队还是同步阻塞的在用,呵呵。其次tornado的周边一般,在复杂的业务场景下,Tornado需要造的轮子远比django和flask多。

Tornado的优势主要在于对大量Comet长轮询连接的维护上,我们先分析下app后台和web后端的区别之一是手机有电量限制和流量(贵啊),我们作为有节操的程序员,要尽量的给用户省电,不要做大量的网络请求,用tornado保持长连接是什么心态?

3、如何部署服务器?本地服务器调试,以及公网服务器部署?

小型规模使用fabric甚至几个shell部署脚本即可。产品线服务器达到一定规模(个人觉得超过50台)可以选择配置管理工具,如Saltstack或者Ansible(当然也可以选择ruby的puppet)。部署无非是安装相关依赖,拷贝或者checkout最新的代码,重启服务(重启的服务可能有顺序要求),最后返回是不是部署成功。

本地调试可以使用web框架自带的web服务器启动,可以每次都填充进来一些测试数据,或者直接连接到线上的数据库环境(不推荐)。

测试,建议使用pytest,不要用nose。 nose已经停止维护好几年了。

4、如果使用python框架开发移动后台服务,在开发源码内使用哪种框架?mvc还是其它的,比如我返回json数据,每次json对象最外层有一些相同的东西,该如何处理?

MVC是一种软件架构模式,它是一种被验证有效的使程序结构更加直观的方法,和web框架有什么关系.....

包一层相同的东西虽然不懂,可能应该是为了结构化返回的结果,比如:

{ 'r': 1, 'items': [] }

或者

{ 'r': 0, 'error: 'user name is toolong' }

这是基于业务要求的封装,要自己实现哦,给你一个例子, commentbox/api.py at master · dongweiming/commentbox · GitHub。

5、python的后台服务最大能支持多大的pv量会严重影响用户体验性能?

影响用户体验的标准就是服务器响应慢(比如一个请求不应该超过200ms,结果3s才返回),这个响应时间和业务的架构,代码质量,数据库、缓存等的使用是不是恰当相关。一般和Python没什么关系。而且我一直认为除非是大型网站(豆瓣都不算,淘宝这种算),否者没有必要考虑到语言实现的层面:大部分公司活不到那天。

现在的服务器要比开发者便宜,所以就算量大还可以把请求分发,让多个服务器一起来处理。

6、如何兼顾 网页前端以及移动端 开发的后台?

JSON是一种倾向的数据交换格式,目前绝大多数编程语言都支持 JSON 格式数据的生成和解析,它既可读也方便生成,除非安全性要求极高的场景下使用自定义的二进制协议,否则直接让API返回使用JSON数据给各个平台就好了。

你要考虑的是如何让返回的JSON数据可以被各个平台重复利用。

并不是只有React才能解决前后端分离... 请不要看着新名词乱误导人好不好,React适用于包含复杂交互的单页面场景,有些人看着新的东西,一个简单地列表页也非要耗时耗力加上React,让人哭笑不得。

7、有没用相关的案例,即用python开发的移动后台?有没有该问题的开源项目?

其实就是一个支持移动端数据的服务而已,不需要有开源项目特别的出现。敏感不敏感的开源它也不要意思写这是一个移动后台的框架.... 至于要不要使用GitHub - tomchristie/django-rest-framework: Web APIs for Django.或者GitHub - flask-restful/flask-restful: Simple framework for creating REST APIs这样的框架依业务需要和团队看法而定。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式