linux下python和webpy怎么搭建,第1张

基于python的web开发,这里我们使用linux为开发环境,搭建基于nginx + webpy + fastcgi

有些基本基本概念解释下,哈哈,因为我不懂

1wsgi为Web服务器网关接口(Python Web Server Gateway Interface,缩写为WSGI)是是为Python语言定义的Web服务器和Web应用程序或框架之间的一种简单而通用的接口。自从WSGI被开发出来以后,许多其它语言中也出现了类似接口

2uwsgi,另一种python定义的web服务器和web应用的接口

3REST服务,REST(Representational State Transfer表述性状态转移)是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。

4CRUD是指在做计算处理时的增加(Create)、查询(Retrieve)(重新得到数据)、更新(Update)和删除(Delete)几个单词的首字母简写。主要被用在描述软件系统中数据库或者持久层的基本操作功能

以下内容主要来自

http://webpyorg/cookbook/fastcgi-nginx

需要的软件

nginx 07以上版本,我使用的是nginx 092

webpy我使用的webpy-037

spawn-fcgi 163

flup 10

nginx的配置请参看官方文档

spawn-fcgi是lighttpd的一个子项目用于多进程管理

webpy和flup安装方式为解压后运行python setuppy install

安装编写indexpy

点击(此处)折叠或打开

#!/usr/bin/env python

# -- coding: utf-8 --

import web

urls = ("/", "hello")

app = webapplication(urls, globals())

class hello:

def GET(self):

return 'Hello, world!'

if __name__ == "__main__":

webwsgirunwsgi = lambda func, addr=None: webwsgirunfcgi(func, addr)

apprun()

注意indexpy需要使用命令chmod +x indexpy加入可执行权限

将indexpy放入/data/www(我所使用的目录你可以修改)

修改nginxconf配置

index要加入indexpy

Nginx的配置加入

点击(此处)折叠或打开

location / {

fastcgi_param REQUEST_METHOD $request_method;

fastcgi_param QUERY_STRING $query_string;

fastcgi_param CONTENT_TYPE $content_type;

fastcgi_param CONTENT_LENGTH $content_length;

fastcgi_param GATEWAY_INTERFACE CGI/11;

fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;

fastcgi_param REMOTE_ADDR $remote_addr;

fastcgi_param REMOTE_PORT $remote_port;

fastcgi_param SERVER_ADDR $server_addr;

fastcgi_param SERVER_PORT $server_port;

fastcgi_param SERVER_NAME $server_name;

fastcgi_param SERVER_PROTOCOL $server_protocol;

fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;

fastcgi_param PATH_INFO $fastcgi_script_name;

fastcgi_pass 127001:9002;

}

使用Spawn-fcgi

spawn-fcgi -d /data/www -f /data/www/indexpy -a 127001 -p 9002

如果报错为126,说明indexpy没有可执行权限

netstat -lnp | grep 9002参考是否启动成功

我运行的实际为

spawn-fcgi -d /data/www -f /data/www/indexpy -a 127001 -p 9002 -F 2

启动2个进程

启动nginx

浏览器输入地址

成功结束

使用pip或easy_install可以管理和安装python的package包,实际上它们都是从pypi服务器中搜索和下载package的。目前在pypi服务器上,有超过三万多个package,同时还允许我们将自己的代码也上传发布到服务器上。这样,世界上的所有人都能使用pip或easy_install来下载使用我们的代码了。

具体步骤如下:

首先创建项目文件和setup文件。

目录文件结构如下:

project/

simpletest/

__init__py

testpy

setuppy

假设项目文件只有一个simpletest包,里面有一个testpy文件。

创建的setuppy文件格式大致如下,其中,install_requires字段可以列出依赖的包信息,用户使用pip或easy_install安装时会自动下载依赖的包。详细的格式参考文档。

from setuptools import setup, find_packages

setup(

name = 'simpletest',

version = '001',

keywords = ('simple', 'test'),

description = 'just a simple test',

license = 'MIT License',

install_requires = ['simplejson>=11'],

author = 'yjx',

author_email = 'not@allcom',

packages = find_packages(),

platforms = 'any',

)

然后将代码打包。

打包只需要执行python

setuppy xxx命令即可,其中xxx是打包格式的选项,如下:

# 以下所有生成文件将在当前路径下 dist 目录中

python setuppy bdist_egg # 生成easy_install支持的格式

python setuppy sdist # 生成pip支持的格式,下文以此为例

发布到pypi。

发布到pypi首先需要注册一个账号,然后进行如下两步:

注册package。输入python setuppy register。

上传文件。输入python setuppy sdist upload。

安装测试

上传成功后,就可以使用pip来下载安装了。

另外,pypi还有一个测试服务器,可以在这个测试服务器上做测试,测试的时候需要给命令指定额外的"-r"或"-i"选项,如python

setuppy register -r "",python

setuppy sdist upload -r "",pip

install -i "" simpletest。

发布到测试服务器的时候,建议在linux或cygwin中发布,如果是在windows中,参考文档,需要生成pypirc文件

1、简介

使用同一个ip频繁爬取一个网站,久了之后会被该网站的服务器屏蔽。所以这个时候需要使用代理服务器。通过ip欺骗的方式去爬取网站

可以使用http://yumiqianyuecomcom/proxy中找到很多服务器代理地址

2、应用

# -coding:utf-8-

from urllib import request

def use_porxy(porxy_addr,url):

porxy = requestProxyHandler({'http':porxy_addr})

opener = requestbuild_opener(porxy, requestProxyHandler)

requestinstall_opener(opener)

data = requesturlopen(url)read()decode('utf-8')

return data

data = use_porxy("11411518259:128","http://wwwbaiducom")

print(len(data))

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » linux下python和webpy怎么搭建

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情