webpy上传文件|如何用python和webpy搭建一个网站

|

㈠ python web开发 用什么工具

python web开发常用的工具:

1. Django

Django无疑是最通用的web开发框架之一,适用博客做一个后端和为企业做一个内容管理系统。

优点:从几乎为零的状态建设出一个全功能的web应用程序。

备注:Python面向对象的设计非常干净,而且配备了令人难以置信的支持库。Python可以很容易地与其他流行的编程语言如Java,C和C ++集成。

㈡ webpy + nginx with fastcgi方案怎么样

起初我很是奇怪,按理说只有当静态文件不存在时nginx才会返回404错误,而现在访问的是配置在nginx.conf中的一个动态路径,该动态路径请求通过fastcgi最终会映射到某个python class的GET或POST方法中,那为什么nginx会返回404呢?查阅相关文档之后发现fastcgi在遇到webpy或其他后端http模块处理极慢的情况下,也就是说超过nginx允许的应答时间,nginx就会对此动态路径请求做出404的应答针对此情况,我开始着手准备一系列测试和实验实验实验一:剥离fastcgi,单独使用webpy,进行压力测试这个实验很简单,只需要注释掉一行代码,便可以以纯webpy方式访问,基于webpy的python应用main入口一般都是这样:?1234 if __name__ == "__main__": web.wsgi.runwsgi = lambda func, addr=None: web.wsgi.runfcgi(func,addr) app.add_processor(web.loadhook(session_hook)) app.run()只需要注释掉第二行即可,之后在终端下运行python <filename>.py,webpy会默认监听本地的8080端口,之后无论是通过浏览器还是其他方式访问相应地址即可同时,还需要准备一份发起http请求的代码,python用来干这活最简单不过了?1234567891011121314151617181920212223 import httplib server = "192.168.2.2:8080"url = "/user/[email protected]&password=111&rnd=33" class perftest: def __init__(self): pass def run(self): conn = httplib.HTTPConnection(server) for i in range(100): try: conn.request("GET", url) rsp = conn.getresponse() if 200 == rsp.status: print "headers", rsp.getheaders() content = rsp.read() print "content", content except Exception, ex: print "ERR:", ex conn.close()跑了几次压力之后,webpy扛不住了…开始大面积抛异常,大致意思是python自带的logging模块出错,因为有频繁的文件打开关闭操作,某个操作导致文件句柄被非法访问…在查看相关的log封装类之后发现,python的日志模块设计实在是有点不够内聚,也可以说不够彻底吧,不由得想起了之前用过的log4net,真是简洁啊出错的原因在项目中开发同事封装的log模块多次执行了addHandler和removeHandler操作,据说在之前的开发过程中还出现过一行日志打印多遍的情况,而且随着程序的运行,相同的日志会越来越多…顺手将该封装修改为单例类之后,故障解除处理完之后接着跑压力,webpy还是会偶尔打印异常信息,不过已经变成了session访问异常,还好的是出现面积很小,于是开始增加压力测试的并发量,结果表明稳定度还是可以的,性能也在可以接受的范围之内实验二:保持最终部署环境不变(nginx+fastcgi+webpy),继续压力测试在上次测试解决完日志的问题之后,我开始以真实环境做相关的测试,要注意的是使用nginx之后,需要访问nginx.conf中配置绑定的相关端口,不再是webpy默认的8080端口继续做上述的压力测试,性能也在可以接受的范围之内实验三:模拟用户环境根据测试MM所描述的,浏览器在B子系统出错过程中扮演了很关键的角色,于是我分别使用几个浏览器和纯粹的python代码分别访问相同的地址几种组合的测试发现:浏览器在只访问B子系统的情况下,一直表现正常一旦浏览器访问过A子系统之后,再次访问B子系统即出现测试MM描述的404现象python代码一直访问正常

㈢ Python 有哪些好的 Web 框架

常见的5种Web框架:

第一个:Django

Django是一个开源的Web应用框架,由Python写成,支持许多数据库引擎,可以让Web开发变得迅速和可扩展,并会不断的版本更新以匹配Python最新版本,如果是新手程序员,可以从这个框架入手。

第二个:Flask

Flask是一个轻量级的Web应用框架,使用Python编写。基于WerkzeugWSGI工具箱和JinJa2模板引擎,使用BSD授权。

Flask也被称为microframework,因为它使用简单的核心,用extension增加其他功能。Flask没有默认使用的数据库、窗体验证工具。然而Flask保留了扩增的弹性,可以用Flask-extension加入这些功能:ORM、窗体验证工具、文件上传、各种开放式身份验证技术。

第三个:Web2py

Web2py是一个用Python语言编写的免费的开源Web框架,旨在敏捷快速的开发Web应用,具有快速、可扩展、安全以及可移植的数据库驱动的应用,遵循LGPLv3开源协议。

Web2py提供一站式的解决方案,整个开发过程都可以在浏览器上进行,提供了Web版的在线开发,HTML模板编写,静态文件的上传,数据库的编写的功能。其他的还有日志功能,以及一个自动化的admin接口。

第四个:Tornado

Tornado即是一个Webserver,同时又是一个类web.py的micro-framework,作为框架的Tornado的思想主要来源于web.PY,大家在web.PY的网站首页也可以看到Tornado的大佬Bret Taylor的这么一段话:“[web.py inspired the] Web framework we use at FriendFeed [and] thewebapp framework that ships with App Engine…”,因为这层关系,后面不再单独讨论Tornado。

第五个:CherryPy

CherryPy是一个用于Python的、简单而非常有用的Web框架,其主要作用是以尽可能少的操作将Web服务器与Python代码连接,其功能包括内置的分析功能、灵活的插件系统以及一次运行多个HTTP服务器的功能,可运行在最新版本的Python、Jython、android上。

㈣ python web.py has no attribute 'application'

这是模块名冲突导致的。你自己的文件不要命名为web.py,可以改名为myapp.py,然后再试一下。

㈤ 盘点Python常用的模块和包

模块

1.定义

计算机在开发过程中,代码越写越多,也就越难以维护,所以为了编写可维护的代码,我们会把函数进行分组,放在不同的文件里。在python里,一个.py文件就是一个模块。

2.优点:

提高代码的可维护性。

提高代码的复用,当模块完成时就可以在其他代码中调用。

引用其他模块,包含python内置模块和其他第三方模块。

避免函数名和变量名等名称冲突。

python内建模块:

1.sys模块

2.random模块

3.os模块:

os.path:讲解

https://www.cnblogs.com/yufeihlf/p/6179547.html

数据可视化

1.matplotlib :

是Python可视化程序库的泰斗,它的设计和在1980年代被设计的商业化程序语言MATLAB非常接近。比如pandas和Seaborn就是matplotlib的外包,它们让你能用更少的代码去调用 matplotlib的方法。

访问:

https://matplotlib.org/

颜色:

https://www.cnblogs.com/darkknightzh/p/6117528.html

教程:

https://wizardforcel.gitbooks.io/matplotlib-user-guide/3.1.html

2.Seaborn:

它是构建在matplotlib的基础上的,用简洁的代码来制作好看的图表。Seaborn跟matplotlib最大的区别就是它的默认绘图风格和色彩搭配都具有现代美感。

访问:

http://seaborn.pydata.org/index.html

3.ggplot:

gplot 跟 matplotlib 的不同之处是它允许你叠加不同的图层来完成一幅图

访问:

http://ggplot.yhathq.com/

4.Mayavi:

Mayavi2完全用Python编写,因此它不但是一个方便实用的可视化软件,而且可以方便地用Python编写扩展,嵌入到用户编写的Python程序中,或者直接使用其面向脚本的API:mlab快速绘制三维图

访问:http://code.enthought.com/pages/mayavi-project.html

讲解:https://blog.csdn.net/ouening/article/details/76595427https://www.jianshu.com/p/81e6f4f1cdd8

5.TVTK:

TVTK库对标准的VTK库进行包装,提供了Python风格的API、支持Trait属性和numpy的多维数组。

VTK (http://www.vtk.org/) 是一套三维的数据可视化工具,它由C++编写,包涵了近千个类帮助我们处理和显示数据

讲解:https://docs.huihoo.com/scipy/scipy-zh-cn/tvtk_intro.html

机器学习

1.Scikit-learn

是一个简单且高效的数据挖掘和数据分析工具,易上手,可以在多个上下文中重复使用。它基于NumPy, SciPy 和 matplotlib,开源,可商用(基于 BSD 许可)。

访问:

讲解:https://blog.csdn.net/finafily0526/article/details/79318401

2.Tensorflow

最初由谷歌机器智能科研组织中的谷歌大脑团队(Google Brain Team)的研究人员和工程师开发。该系统设计的初衷是为了便于机器学习研究,能够更快更好地将科研原型转化为生产项目。

相关推荐:《Python视频教程》

Web框架

1.Tornado

访问:http://www.tornadoweb.org/en/stable/

2.Flask

访问:http://flask.pocoo.org/

3.Web.py

访问:http://webpy.org/

4.django

https://www.djangoproject.com/

5.cherrypy

http://cherrypy.org/

6.jinjs

http://docs.jinkan.org/docs/jinja2/

GUI 图形界面

1.Tkinter

https://wiki.python.org/moin/TkInter/

2.wxPython

https://www.wxpython.org/

3.PyGTK

http://www.pygtk.org/

4.PyQt

https://sourceforge.net/projects/pyqt/

5.PySide

http://wiki.qt.io/Category:LanguageBindings::PySide

科学计算

教程

https://docs.huihoo.com/scipy/scipy-zh-cn/index.html#

1.numpy

访问

http://www.numpy.org/

讲解

https://blog.csdn.net/lm_is_dc/article/details/81098805

2.sympy

sympy是一个Python的科学计算库,用一套强大的符号计算体系完成诸如多项式求值、求极限、解方程、求积分、微分方程、级数展开、矩阵运算等等计算问题

访问

https://docs.sympy.org/0.7.1/guide.html#guide

讲解

https://www.jianshu.com/p/339c91ae9f41

解方程

https://www.cnblogs.com/zyg123/p/10549354.html

3.SciPy

官网

https://www.scipy.org/

讲解

https://blog.csdn.net/wsp_1138886114/article/details/80444621

4.pandas

官网

http://pandas.pydata.org/

讲解

https://www.cnblogs.com/linux-wangkun/p/5903945.html

5.blaze

官网

http://blaze.readthedocs.io/en/latest/index.html

密码学

1.cryptography

https://pypi.python.org/pypi/cryptography/

2.hashids

http://www.oschina.net/p/hashids

3.Paramiko

http://www.paramiko.org/

4.Passlib

https://pythonhosted.org/passlib/

5.PyCrypto

https://pypi.python.org/pypi/pycrypto

6.PyNacl

http://pynacl.readthedocs.io/en/latest/

爬虫相关

requests

http://www.python-requests.org/

scrapy

https://scrapy.org/

pyspider

https://github.com/binux/pyspider

portia

https://github.com/scrapinghub/portia

html2text

https://github.com/Alir3z4/html2text

BeautifulSoup

https://www.crummy.com/software/BeautifulSoup/

lxml

http://lxml.de/

selenium

http://docs.seleniumhq.org/

mechanize

https://pypi.python.org/pypi/mechanize

PyQuery

https://pypi.python.org/pypi/pyquery/

creepy

https://pypi.python.org/pypi/creepy

gevent

一个高并发的网络性能库

http://www.gevent.org/

图像处理

bigmoyan

http://scikit-image.org/

Python Imaging Library(PIL)

http://www.pythonware.com/procts/pil/

pillow:

http://pillow.readthedocs.io/en/latest/

自然语言处理

1.nltk:

http://www.nltk.org/

教程

https://blog.csdn.net/wizardforcel/article/details/79274443

2.snownlp

https://github.com/isnowfy/snownlp

3.Pattern

https://github.com/clips/pattern

4.TextBlob

http://textblob.readthedocs.io/en/dev/

5.Polyglot

https://pypi.python.org/pypi/polyglot

6.jieba:

https://github.com/fxsjy/jieba

数据库驱动

mysql-python

https://sourceforge.net/projects/mysql-python/

PyMySQL

https://github.com/PyMySQL/PyMySQL

PyMongo

https://docs.mongodb.com/ecosystem/drivers/python/

pymongo

MongoDB库

访问:https://pypi.python.org/pypi/pymongo/

redis

Redis库

访问:https://pypi.python.org/pypi/redis/

cxOracle

Oracle库

访问:https://pypi.python.org/pypi/cx_Oracle

SQLAlchemy

SQL工具包及对象关系映射(ORM)工具

访问:http://www.sqlalchemy.org/

peewee,

SQL工具包及对象关系映射(ORM)工具

访问:https://pypi.python.org/pypi/peewee

torndb

Tornado原装DB

访问:https://github.com/bdarnell/torndb

Web

pycurl

URL处理工具

smtplib模块

发送电子邮件

其他库暂未分类

1.PyInstaller:

是一个十分有用的第三方库,它能够在Windows、Linux、 Mac OS X 等操作系统下将 Python 源文件打包,通过对源文件打包, Python 程序可以在没有安装 Python 的环境中运行,也可以作为一个 独立文件方便传递和管理。

2.Ipython

一种交互式计算和开发环境

讲解

https://www.cnblogs.com/zzhzhao/p/5295476.html

命令

ls、cd 、run、edit、clear、exist

㈥ 如何用python和web.py搭建一个网站

1. 环境搭建。环境搭建比较繁琐,记得当时也是满世界找资料,所以我直接打包好了所有的文件(apache(已经放进去python-wscgi) + web.py+apache所需要的vs2010运行库+python+网站文件),直接解压放上去就能用。有需要同学让我传一个或者网盘发一把就行。如果在windows,最好在win7以上版本,我用win8。linux则ubuntu较好,建议12.04以上版本,不过linux我仅仅是开发用过,最终运行的服务器是采用windows+apache:安装python2.7.10,可以去官方网站下载,注意要把python路径加入系统环境变量。版本不能低于2.7.9,但不能用3.0以上,web.py支持不好。安装web.py, 官方网下载来装就行,记得是解压后进去:python setup.py install安装wingIDE,这个是最好用的python编辑器,可惜只能有几天试用,我就是不停的试用进行开发,用它的好处就是代码可以跳转并且支持调试,需要调试直接将程序文件run起来,单步下段点都可以。装apache并配置python-wscgi,这个比较惨,花了好多时间去搜索才搞定,主要是windows上的python-wscgi不好难找。为了节省以后的开发时间,我把配置好的apache给打包了,反正也是绿色的,新建网站只需要在服务器上配置开机启动apache,并在apache的config里面修改下自己网站路径就行。2. 开发。开发阶段倒是没什么好说的,web.py官方有教程,不过这里我需要提几点建议:如果可以务必全站用utf-8编码。建立数据库建议写个生成脚本,比如createDataBase.py,有改动重新运行一遍,不要试用ide去建。


赞 (0)