本人会移动开发,略知后台开发,不过一般公司都采用java 或者 c开发后台,我想使用python开发移动后台,返回json数据给移动app,我需要怎么做?1、如果使用python语言,需要学习哪些知识?2、选择什么样的python框架开发,这个框架的优势?3、如何部署服务器?本地服务器调试,以及公网服务器部署?4、如果使用python框架开发移动后台服务,在开发源码内使用哪种框架?mvc还是其它的,比如我返回json数据,每次json对象最外层有一些相同的东西,该如何处理?5、python的后台服务最大能支持多大的pv量会严重影响用户体验性能?6、如何兼顾 网页前端以及移动端 开发的后台?7、有没用相关的案例,即用python开发的移动后台?有没有该问题的开源项目?回复内容:
1、如果使用python语言,需要学习哪些知识?python作为一门简单明了的语言,非常容易上手,语言层面不会太复杂,稍微有点难度的顶多就是装饰器、元类和少量函数式编程内容。要说学习的话,我觉得更多是一些编程方面通用的东西,比如:数据结构和算法、设计模式、操作系统、计算机网络之类的2、选择什么样的python框架开发,这个框架的优势?tornado,因为非阻塞io的原因,性能非常高,特别适合写后端api(app的后端应该都是rest风格的api),而且成熟稳定3、如何部署服务器?本地服务器调试,以及公网服务器部署?这个一两句说不清楚,涉及到运维、测试、开发诸多方面, 部署和测试推荐几个包:fabric、nose、unittest(python自带),版本管理推荐git,持续集成推荐使用docker+jenkins4、如果使用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或者博客程序)————————————————————————————-关于python学习推荐full stack python ,可以看看这个:python 有哪些好的学习资料或者博客? – 彭泉鑫的回答
给一套我用过的解决方案,用来开发过web项目(网页 + ios)和手游项目(ios + 安卓),都是一套后台对应多种前端平台:web框架:djangodjango 是一套相对全(zhong)面(yong)的框架,基本你要的功能都有,文档很细致,上手比较容易,开发效率比较高。自带 auth、session、orm、admin 等功能,尤其是 admin,如果要求不是太高,用自带的后台管理系统就能省下很多开发工作。web server:nginx相对 apache 较轻,简洁。用来部署 django 也比较方便,可参考 setting up django and your web server with uwsgi and nginx数据库:mysql这个不限定,看业务需求和开发者喜好。当然如果用了 django,自然最好选一个 orm 支持比较好的。restful api:tastypie基于 django 的 restful api。django 本身作为一个 web 框架,返回的结果默认是渲染好的 html 文本。借助 tastypie,可以比较方便的制作 json 数据格式的接口,将前后端解耦合。这样不管是网页、ios 还是 android,都可以用同样的接口。再针对问题补充一下:1、如果使用python语言,需要学习哪些知识?python 语言本身,使用的框架,web 开发的通用知识,比如 http 请求的处理流程、restful、oauth 等。2、选择什么样的python框架开发,这个框架的优势?见上文。3、如何部署服务器?本地服务器调试,以及公网服务器部署?django 自带本地调试服务,开发的时候用局域网地址调试即可。公网部署见上文。4、如果使用python框架开发移动后台服务,在开发源码内使用哪种框架?mvc还是其它的,比如我返回json数据,每次json对象最外层有一些相同的东西,该如何处理?tastypie 可以处理掉生成 json 数据时的很多体力活。5、python的后台服务最大能支持多大的pv量会严重影响用户体验性能?这个没法给确切答案,具体情况会受机器硬件条件(cpu、内存、i/o)、网络带宽、代码质量、架构设计,甚至配置参数的影响。目前有较大型网站使用 python,并正常运作(参见 有哪些大型公司在使用 python?有哪些知名项目是主要由 python 写成的? – crossin 的回答),所以 python 本身不是问题。实践时,做好压力测试和上线后的性能监控,找出瓶颈不断优化是王道。6、如何兼顾 网页前端以及移动端 开发的后台?通过 api,后台无需知道是什么平台在使用它。7、有没用相关的案例,即用python开发的移动后台?有没有该问题的开源项目?通常框架会自带测试案例。真实案例开源的暂时不知道。如果哪天我把之前写的开源了,再回来修改答案。
居然有人邀请我回答,甚是激动!我后台开发水平一般般除了语言层面的差别,使用python做后台开发和其他语言开发后台,用到的知识其实是差不多了。除了上面回答提到的数据结构和算法、设计模式、操作系统、计算机网络这些通用的之外,我觉得还需要了解一些后台开发里的基础概念:io模型基本概念:异步,同步,阻塞,非阻塞,多路复用(epoll)并发模型:多进程模型,多线程模型,reactor模型http协议:协议有哪些基本字段,get和post的区别web服务器原理:建议去看看tinyhttp的源码负载均衡:一些基本的负载均衡算法网关协议:cgi,fastcgi,wcgi进程间通讯:管道,消息队列,信号等其他:session,cookie,restful apipython框架用过一个:tornado。tornado框架集成了web服务器,它是采用目前比较流行异步非阻塞并发模型,性能不错,再加上python的协程,可以实现一个高性能的web后台。如果使用tornado框架,由于tornado是单进程,不能利用多核cpu,所以部署的时候,可以每个cpu分配一个进程,supervisor守护tornado进程。同时建议使用nginx做前端做负载均衡和管理静态资源。至于python性能问题,如果是io密集型应用,可以考虑用异步io提高性能。如果是计算密集型,那性能的关键点就用c/c++写吧,python调用c/c++还是比较方便的。
看需求吧,简单的需求可以直接用flask,再配上flask restful 或者flask restless ,辅之以flask sqlalchemy 或者直接用sqlalchemy,数据库mysql就可以,在弄个flask admin加上角色权限管理。就要差不多了往大说了,要考虑并发,那就很麻烦了,异步的tonardo 就是个不错的选择,还可以用redis做分布式缓存。不过我也没用过,哈哈,也只真正做过基于flask 的rest风格的api
谢邀,如果不复杂,后端直接用postgrest https://github.com/begriffs/postgrest 即可。稍微复杂点的,那就flask,django都行,快速实现。
python可以用flask开发restful风格的api service。可以参考这篇文章:http://blog.miguelgrinberg.com/post/designing-a-restful-api-with-python-and-flask不过你要兼顾网页版本移动端开发。python就不太合适。你应该用ruby on rails。原生完美支持html、json、js、xml等方式的请求的响应。做restful web service强大又方便。
可以使用flask框架开发rest api,无论什么平台都能用
最近正在看python自动化开发,alex老师的教程,感觉你可以看看
我们公司用的flask!感觉比较的灵活!理念也是比较先进!
我公司专做python外包项目。对这个问题,应该看应用场景来得出一个最佳实践。首先,是企业应用开发。企业开发经常需要面对变动。需要稳定性和可靠性。这是我们使用的方案是pyramid框架+postgresql数据库,如果图方便就使用uwsgi来管理进程,如果考虑性能还有其他方案。python与pg数据库简直就是天作之合!tornado也是一个选择,但是应该特别谨慎的使用。因为这是一个异步框架,如果新手很容易造成阻塞。在实际项目中,我们还经常使用flask和twisted,看应用场景,twisted可以说是一个工业级的框架,我们给一个银行的项目中,twisted的进程曾经连续几年稳定可靠的运行,实在太好用了。我们还经常用到bottle这个框架,在某些业务场景中还是很好用的。django反而很少用到,它的orm实在太差了。我们要么使用sqlalchemy,要么就是使用自己封装的一个orm库,速度要快的多,但是简单好用。总之,应该根据不同的业务选择不同的方案,要知道,在软件这个领域,没有万能的灵丹妙药。