您的位置:首页 > 编程语言 > Python开发

用python flask搭建一个网站[一]——服务器程序

2014-09-20 12:04 357 查看
鉴于硬件设施的完善和网络的普及,互联网相关的东西也会有长足发展。之前从来没接触过互联网的我,也在这种驱动之下做了一点点东西,并记录下过程,以便参考和回忆。

python下有众多开源框架,Django,Web2py, web.py等等。不过我选择了一个轻量级的框架Flask。虽然我也没有详细学习过其他框架,只听朋友说过flask简单,上手快,适合新手,而且给我推荐了一本《Flask Web Development》。我就参考书本决定尝试一下。

找到第一个例程

from flask import Flask

app = Flask(__name__)

@app.route('/')
def index():
return '<h1>Hello World!</h1>'

if __name__ == '__main__':
app.run(debug=True)


看起来非常简单呢。只是单纯的调用了Flask库。在python中安装了flask之后,在cmd中找到例程所在文件夹,在cmd中运行python filename.py,然后用浏览器访问http://localhost:5000/,就能看到



当然,cmd里也会提示相应的服务器信息:



200和404都是服务器返回状态,200表示返回成功,404表示文件未找到。当然,这里我们没有定义favicon.ico。

再对照之前的程序,OK,我想

@app.route('/')
def index():
return '<h1>Hello World!</h1>'
这个部分是说输入的是"/"的时候会调用这个函数,返回对应的值。

OK,下一段程序

from flask import Flask

app = Flask(__name__)

@app.route('/') def index(): return '<h1>Hello World!</h1>'

@app.route('/user/<name>')
def user(name):
return '<h1>Hello, %s!</h1>' % name

if __name__ == '__main__':
app.run(debug=True)


这部分之比之前多了一个方法,参考之前的猜测。估计是要在后面加上"user/a/"之类的,然后就能返回"Hello, a!"了

OK,测试一下,结果如下:



果不其然。嗯,看起来还挺容易的。

再往下看。

from flask.ext.script import Manager

manager = Manager(app)

# ...

if __name__ == '__main__':
manager.run()


咦,例子怎么只有这么一点,好奇怪,看起来是调用了一个flask.ext.script的东西,在外面包了一层。再往后看,居然可以指定运行端口,然后让其他机器访问,看起来不错~ 只是这程序只有一小部分,没有完整的代码啊。嗯,书里面一直在说从GitHub拿到代码,看来可以从那上面获得。

嗯,命令是 git clone https://github.com/miguelgrinberg/flasky.git,看起来对应的地址是https://github.com/miguelgrinberg/flasky
嗯,check out版本2c之后,果然是在之前的代码中嵌入了上面的,完整的代码如下:

from flask import Flask
from flask.ext.script import Manager

app = Flask(__name__)

manager = Manager(app)

@app.route('/') def index(): return '<h1>Hello World!</h1>'

@app.route('/user/<name>')
def user(name):
return '<h1>Hello, %s!</h1>' % name

if __name__ == '__main__':
manager.run()


不过这么简单还是先运行在本地吧。在尝试一下python hello.py,奇怪,提示要加入其他参数,嗯,再看下书,用python hello.py runserver,就OK了。



要是想让其他人访问,就要再加入参数:--host 0.0.0.0。其他人访问的时候就要输入电脑的ip地址加上端口5000就OK了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: