Python程序后台运行实现(转)

Python011

Python程序后台运行实现(转),第1张

后台运行work()方法。

work.py

def work():

print "running"

import time

time.sleep(100)

if name == ' main ':

work()

方法1 使用nohup命令

nohup python work.py >my.log &

方法2 python-daemon

安装python-daemon

pip install python-daemon

编写入口程序

use_daemon.py

import daemon

from work import work

with daemon.DaemonContext():

work()

运行

python use_daemon.py

原文: https://www.cnblogs.com/rkfeng/p/6338107.html

更详细方法: https://blog.csdn.net/dodott/article/details/82789379

1、使用python开发APP后台要用到tornado框架,因为非阻塞io的原因,性能非常高,特别适合写后端API(App的后端应该都是rest风格的api),而且成熟稳定。

2、APP后台需要部署服务器,这方面涉及到运维、测试、开发诸多方面, 部署和测试推荐几个包:fabric、nose、unittest(python自带),版本管理推荐git,持续集成推荐使用docker+jenkins。

3、APP后台服务性能需求方面,youtube、reddit、豆瓣、知乎这样的大流量网站都是python写的,所以App的规模不太可能遇到性能问题,即使有也应该不是python的问题,而是任何语言都会有问题。大量的pv是可以靠堆服务器堆出来,如果是计算量比较大的任务,可以考虑用c或c++写。

4、网页前端以及移动端开发后台用python写的API,让前端使用React,就可以轻松解决前后端分离这个问题。

5、现有开源实例子比较少,App后端开源的不常见,而且大部分是rest风格的api,很多时候会涉及到自身的业务和敏感信息也不会开源,所以都要自己从头开始编写。

给一套我用过的解决方案,用来开发过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开发的移动后台?有没有该问题的开源项目?

通常框架会自带测试案例。真实案例开源的暂时不知道。如果哪天我把之前写的开源了,再回来修改答案。