目录
回复内容:
首页 后端开发 Python教程 如何用python开发移动App(android、iOS)后台?需要掌握哪些技术?

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

Jun 06, 2016 pm 04:22 PM
app java json mvc python

本人会移动开发,略知后台开发,不过一般公司都采用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+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或者博客程序)

-------------------------------------------------------------------------------------

关于python学习推荐Full Stack Python ,可以看看这个:
Python 有哪些好的学习资料或者博客? - 彭泉鑫的回答 给一套我用过的解决方案,用来开发过web项目(网页 + ios)和手游项目(ios + 安卓),都是一套后台对应多种前端平台:

web框架:Django
Django 是一套相对全(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 API

Python框架用过一个: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 github.com/begriffs/pos 即可。
稍微复杂点的,那就flask,django都行,快速实现。 PYTHON可以用FLASK开发RESTFUL风格的API service。
可以参考这篇文章:
blog.miguelgrinberg.com

不过你要兼顾网页版本移动端开发。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库,速度要快的多,但是简单好用。
总之,应该根据不同的业务选择不同的方案,要知道,在软件这个领域,没有万能的灵丹妙药。
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

<🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系统,解释
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆树的耳语 - 如何解锁抓钩
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1666
14
CakePHP 教程
1425
52
Laravel 教程
1327
25
PHP教程
1273
29
C# 教程
1252
24
Python vs. JavaScript:开发环境和工具 Python vs. JavaScript:开发环境和工具 Apr 26, 2025 am 12:09 AM

Python和JavaScript在开发环境上的选择都很重要。1)Python的开发环境包括PyCharm、JupyterNotebook和Anaconda,适合数据科学和快速原型开发。2)JavaScript的开发环境包括Node.js、VSCode和Webpack,适用于前端和后端开发。根据项目需求选择合适的工具可以提高开发效率和项目成功率。

Golang vs. Python:利弊 Golang vs. Python:利弊 Apr 21, 2025 am 12:17 AM

Golangisidealforbuildingscalablesystemsduetoitsefficiencyandconcurrency,whilePythonexcelsinquickscriptinganddataanalysisduetoitssimplicityandvastecosystem.Golang'sdesignencouragesclean,readablecodeanditsgoroutinesenableefficientconcurrentoperations,t

Python vs. C:了解关键差异 Python vs. C:了解关键差异 Apr 21, 2025 am 12:18 AM

Python和C 各有优势,选择应基于项目需求。1)Python适合快速开发和数据处理,因其简洁语法和动态类型。2)C 适用于高性能和系统编程,因其静态类型和手动内存管理。

Laravel vs. Python(与框架):比较分析 Laravel vs. Python(与框架):比较分析 Apr 21, 2025 am 12:15 AM

Laravel适合团队熟悉PHP且需功能丰富的项目,Python框架则视项目需求而定。1.Laravel提供优雅语法和丰富功能,适合需要快速开发和灵活性的项目。2.Django适合复杂应用,因其“电池包含”理念。3.Flask适用于快速原型和小型项目,提供极大灵活性。

Python项目是否需要进行分层? Python项目是否需要进行分层? Apr 19, 2025 pm 10:06 PM

Python项目中的分层结构探讨在学习Python的过程中,很多初学者会接触到一些开源项目,特别是使用Django框架的项...

Python vs.C:您的项目选择哪种语言? Python vs.C:您的项目选择哪种语言? Apr 21, 2025 am 12:17 AM

选择Python还是C 取决于项目需求:1)如果需要快速开发、数据处理和原型设计,选择Python;2)如果需要高性能、低延迟和接近硬件的控制,选择C 。

后端开发中的分层架构如何正确划分业务逻辑和非业务逻辑? 后端开发中的分层架构如何正确划分业务逻辑和非业务逻辑? Apr 19, 2025 pm 07:15 PM

探讨后端开发中的分层架构问题在后端开发中,常见的分层架构包括controller、service和dao...

在Python和C之间进行选择:适合您的语言 在Python和C之间进行选择:适合您的语言 Apr 20, 2025 am 12:20 AM

Python适合初学者和数据科学,C 适用于系统编程和游戏开发。1.Python简洁易用,适用于数据科学和Web开发。2.C 提供高性能和控制力,适用于游戏开发和系统编程。选择应基于项目需求和个人兴趣。

See all articles