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

作者&投稿:善帜 (若有异议请与网页底部的电邮联系)
如何用python开发移动App后台?需要掌握哪些技术~

python
作为一门简单明了的语言,非常容易上手,语言层面不会太复杂,稍微有点难度的顶多就是装饰器、元类和少量函数式编程内容。一些编程方面通用的东西,比如:数据结构和算法、设计模式、操作系统、计算机网络之类的。
框架开发
tornado,因为非阻塞io的原因,性能非常高,特别适合写后端API,而且成熟稳定。
兼顾 网页前端以及移动端 开发的后台
网页和移动端都是可以调用,通过React,就可以轻松解决前后端分离这个问题。
数据库:mysql这个不限定,看业务需求和开发者喜好。当然如果用了 django,自然最好选一个 orm 支持比较好的。

给一套我用过的解决方案,用来开发过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开发的移动后台?有没有该问题的开源项目?
通常框架会自带测试案例。真实案例开源的暂时不知道。如果哪天我把之前写的开源了,再回来修改答案。

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或者博客程序)

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这样的框架依业务需要和团队看法而定。


python用来开发什么
3、云计算开发 Python是从事云计算工作需要掌握的一门编程语言,目前很火的云计算框架OpenStack就是由Python开发的,如果想要深入学习并进行二次开发,就需要具备Python的技能。4、游戏开发 在网络游戏开发中,Python也有很多应用,相比于Lua or C++,Python比Lua有更高阶的抽象能力,可以用更少的代码描述...

Python是什么?它有何用途?
1、python基础,因为用python开发的,所以python指定要会,最起码你也得会条件判断,循环,函数,类这些知识;2、html、css的基础知识,因为要开发网站,网页都html和css写的,最起码这些知识你得会,就算不会写前端,开发不出来特别漂亮的页面,网站,最起码要能看懂html标签是;3、数据库基础知识,因为...

如何用python语言打开程序
【方式四】使用ctypes调用kernel32.dll中的函数使用ctypes模块可以让Python调用位于动态链接库的函数。ctypes模块为Python提供了调用动态链接库中函数的功能。使用ctypes模块可以方便地调用由C语言编写的动态链接库,并向其传递参数。ctypes模块定义了C语言中的基本数据类型,并且可以实现C语言中的结构体和联合体。

python编程界面怎么打开
1、在Windows和MacOS操作系统中,可以使用“命令提示符”或“终端”打开命令行。2、在命令行中输入python后,将会进入Python的交互式界面。3、在交互式界面中,可以逐行输入Python代码,并立即执行代码并输出结果。

怎么用python实现一个页面的开发?
在python中有两个最常见的开发框架:Django,flask。Django大而全,什么功能模块都已经封装好了,调用即可;flask小而精,没有很高的封装,但是有许多功能模块,需要我们自己去集成。当初学习的那个网络课程是用flask框架来做的,上手很简单:当初学习的时候能写一个小的网站,本来想转行做python后端开发的...

python怎么打开使用
1、首先需要打开电脑的桌面,如图所示,并按开始的快捷键点击安装好的python3.6程序进入。2、然后点击进入之后,如图所示,可以看到页面上面的三个大于号出现并且后面一直有光标在闪就表示启动成功了。3、最后,第一个程序就是打印print,在光标后面输入print("hello")就能在下一行打印出hello,这样使用...

Python能用来做什么?
1、做日常任务,比如下载视频、MP3、自动化操作excel、自动发邮件。2、做网站开发、web应用开发,很多著名的网站像知乎、YouTube就是Python写的。许多大型网站就是用Python开发的,例YouTube、Instagram,还有国内的豆瓣。很多大公司,包括Google、Yahoo等,甚至NASA(美国航空航天局)都大量地使用Python。3、...

Python能干什么
Python有上百种Web开发框架,有很多成熟的模板技术,选择Python开发Web应用,不但开发效率高,而且运行速度快。常用的web开发框架有:Django、Flask、Tornado等。由于后台服务器的通用性,除了狭义的网站之外,很多App和游戏的服务器端也同样用 Python实现。2、网络爬虫 网络爬虫是Python比较常用的一个场景,...

Python用来做什么开发比较有优势
1、Web开发 Django和Flask等基于Python的Web框架最近在Web开发中非常流行。这些Web框架可以帮助你用Python编写服务器端代码(后端代码)。这是在你的额服务器上运行的代码,而不是运行在用户设备和浏览器的代码(前端代码)。2、数据科学 数据科学,这里包括机器学习,数据分析和数据可视化。机器学习通过实现算法...

python可以用来干嘛
Python 是标准的系统组件,可以在终端下直接运行 Python。有一些 Linux 发行版的安装器使用 Python 语言编写,例如 Ubuntu 的 Ubiquity 安装器、Red Hat Linux 和 Fedora 的 Anaconda 安装器等等。另外,Python 标准库中包含了多个可用来调用操作系统功能的库。例如,通过 pywin32 这个软件包,我们能访问...

郓城县13342925315: 如何用python开发移动App后台 -
不育血滞: 1、使用python开发APP后台要用到tornado框架,因为非阻塞io的原因,性能非常高,特别适合写后端API(App的后端应该都是rest风格的api),而且成熟稳定.2、APP后台需要部署服务器,这方面涉及到运维、测试、开发诸多方面, 部署和测...

郓城县13342925315: 如何Python写一个安卓APP -
不育血滞: 用 python 写安卓 APP 肯定不是最好的选择,但是肯定是一个很偷懒的选择,而且实在不想学习 Java ,再者,就编程而言已经会的就 Python 与 Golang( 注: Python , Golang 水平都一般 ) ,那么久 Google 了一下 Python 写安卓的 APP 的可...

郓城县13342925315: python怎样编写手机软件?能简要说一下步骤吗?(s60v3系统的) -
不育血滞: 写一个(或者多个)功能模块,完成一定的功能; 写一个引导模块,在main函数中调用功能模块中的函数; 利用py2sis工具将需要的模块封装成为sis文件,即塞班的安装文件.

郓城县13342925315: 怎么用python编android app -
不育血滞: 前言:用Python写安卓APP肯定不是最好的选择,但是肯定是一个很偷懒的选择,而且实在不想学习Java,再者,就编程而言已经会的就Python与Golang(注:Python,Golang水平都一般),那么久Google了一下Python写安卓的APP的可能性,...

郓城县13342925315: 如何Python写一个安卓APP -
不育血滞: 安装vs2017勾选python和安卓虚拟机什么的.然后安装.进去后选择phython~移动程序.然后就编好了..

郓城县13342925315: 如何使用QPython开发Android应用 -
不育血滞: 在使用python开发android应用之前我们需要准备好环境,环境需要安装PythonForAndroid,然后开始编程,编程时打开eclipse, 创建一个新的android project “introduction”,设置对象等等步骤,最后完成.整个开发的过程步骤虽然不是很复...

郓城县13342925315: python能编程手机应用吗 -
不育血滞: 据我所知和工作接触到的,目前的现状是python广泛应用在网络编程、UNIX(LINUX等)这样的系统管理等应用上,不过很多地方现在都支持python了,连手机也可以用python写程序,你时候它强大不?另外GOOGLE最支持的语言就是python,国...

郓城县13342925315: python可以开发安卓应用吗 -
不育血滞: 不太理想,如果你只会py,而且又有充足的精力的话,你可以那py来开发安卓程序,当然实现情况是可以利用的资源太少.(已有的例子少,相关书籍少,关键那它开发出来的实际产品也少...),所以,你喜欢的话我很支持你,如如果开发出来的话,放到oschina的git上,我一定收藏.

郓城县13342925315: Ruby、python可以开发安卓app应用吗?可以设计出让机器人行走活动的程序吗? -
不育血滞: Ruby、python貌似不可以开发安卓应用,但是,设计让机器人行走活动的程序是可以的,去买套树莓派raspberry 3b+套件,支持Python编程,让你玩得不亦乐乎.

郓城县13342925315: 用Python开发Android程序到底怎么样 -
不育血滞: 完全没问题,目前python for android项目的进展很迅速,python能在android上稳定运行.是否流畅还要看硬件配置如何了.图形界面也有成熟的项目,比如kivy等.可以制作稳定实用的Ap

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网