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

 我来答
之那年青春正好
高粉答主

2018-03-31 · 繁杂信息太多,你要学会辨别
知道大有可为答主
回答量:459
采纳率:100%
帮助的人:14.4万
展开全部
  1. 环境搭建。

环境搭建比较繁琐,记得当时也是满世界找资料,所以我直接打包好了所有的文件(apache(已经放进去python-wscgi) + web.py+apache所需要的vs2010运行库+python+网站文件),直接解压放上去就能用。有需要同学让我传一个或者网盘发一把就行。

装apache并配置python-wscgi,这个比较惨,花了好多时间去搜索才搞定,主要是windows上的python-wscgi不好难找。
为了节省以后的开发时间,我把配置好的apache给打包了,反正也是绿色的,新建网站只需要在服务器上配置开机启动apache,并在apache的config里面修改下自己网站路径就行。

2. 开发。

开发阶段倒是没什么好说的,web.py官方有教程,不过这里我需要提几点建议:
如果可以务必全站用utf-8编码。

建立数据库建议写个生成脚本,比如createDataBase.py,有改动重新运行一遍,不要试用ide去建。

一. 基本概念

因特网起源于美国国防部高级研究计划管理局建立的阿帕网。网站(Website)开始是指在因特网上根据一定的规则,使用HTML(标准通用标记语言下的一个应用)等工具制作的用于展示特定内容相关网页的集合。

二. 建设网站考虑因素

1、网站的客户服务群体;

2、网站的内容方向和性质;

3、网站的功能描述和结构分析;

4、网站的用户体验;

5、网站的盈利方式;

6、网站的未来发展方向。

伍脊六兽
2016-09-09 · 沉迷光影,耽于声色。
伍脊六兽
采纳数:77 获赞数:1145

向TA提问 私信TA
展开全部
最近做了个项目,由于规模不大使用python + web.py框架,并且既可以在windows又可以在linux里面跑,确实很方便,开发也容易。
下面说说如何搭建这么个网站:
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去建。
下面是我这个项目网站代码入口文件的删减版:
[python] view plain copy
# -*- coding: utf-8-*-

import sys
import os
if "index.py" != __file__:
#这里切换工作目录主要是为了支持apache,让可以从任意路径运行此文件
sys.path.append(os.path.dirname(__file__))
os.chdir(os.path.dirname(__file__))

import re
import datetime

import web

web.config.debug = False

urls = (
"/", "Index",
"/index", "Index",

#....省略若干行业务url定义

#这里是为了调试的时候能够正常显示静态文件
'/(.*.(ico|png|jpg|jpeg|gif|js|bmp|css|svg|eot|ttf|woff]))', 'StaticFile',
)

app = web.application(urls, globals())

#请保证数据库中有相应的表存储session,建表方法参考web.py的cookbook,不建议试用文件存session,多线程有问题
#init session
db = web.database(dbn='sqlite', db='db/StoneTeachMgr.s3db', driver="sqlite3")
store = web.session.DBStore(db, 'sessions')
sessionInit = {
"userId":None,
"userName":None,
"accessClass":None,
}
web.config._session = web.session.Session(app, store, initializer=sessionInit)
web.config.session_parameters['cookie_name'] = 'StoneTeachMgr_session_id'
web.config.session_parameters['cookie_domain'] = "magicclass.org"
web.config.session_parameters['timeout'] = 600, #in seconds
web.config.session_parameters['ignore_expiry'] = True
web.config.session_parameters['ignore_change_ip'] = True
web.config.session_parameters['secret_key'] = 'xxxxxxxxxx'
web.config.session_parameters['expired_message'] = 'Session expired'
#init session end

class StaticFile:
def GET(self, file, suffix):
web.seeother('/static/'+file); #重定向

class Index:
def GET(self):
courseRender = web.template.frender('templates/index.html')
return render()

#这里这么写就可以即支持apache又支持直接运行此脚本运行网站
if not __name__ == "__main__":
application = app.wsgifunc()
else:
app.run()

3. 发布网站。
发布网站用apache+pywscgi即可,当然如果用户少需求不高直接在命令行python index.py 8080也能让网站跑起来,但是这样有几个缺点:
a. 所有到这台服务器这个系统的8080端口访问都变成了这个网站,也就是说如果你无法指定特定域名了。
b. 静态文件都是每次去读文件非常慢,比如你的网站logo,网站js,字体等,会极大的拖慢网站速度!!!这个非常严重,这个是我试用apache的主要原因。专业服务器程序优化的好,实测快了不少。
这里放以下apache中配置文件的修改段落:
文件:apache24/conf/httpd.conf
[plain] view plain copy
#for webpy start
LoadModule wsgi_module modules/mod_wsgi-py27-VC9.so
WSGIScriptAlias / "D:/web/StoneTeachMgr/index.py"
Alias /css "D:/web/StoneTeachMgr/static/css"
Alias /fonts "D:/web/StoneTeachMgr/static/fonts"
Alias /images "D:/web/StoneTeachMgr/static/images"
Alias /js "D:/web/StoneTeachMgr/static/js"
<Directory "D:/web/StoneTeachMgr/static">
AllowOverride all
Order allow,deny
Allow from all
</Directory>
#for web py end
D:/web/StoneTeachMgr/为网站路径
Alias那几行是定义网站的静态文件路径
主要是:WSGIScriptAlias / "D:/web/StoneTeachMgr/index.py"定义网站程序入口
主要就这点配置,另外apache的其它配置比如Listen则看需求自己改了

暂时就写这点,等有空了就补充,把配置方法也给补上。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
123
2016-09-09 · 知道合伙人数码行家
123
知道合伙人数码行家
采纳数:12960 获赞数:94610
000000000000

向TA提问 私信TA
展开全部
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去建。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式