使用Python写一个WEB服务器
2018-02-06 17:35
447 查看
写在前面:参考于 《FlaskWeb开发:基于Python的Web应用开发实战》
基于Python的Web开发 Flask
使用Flask进行Web开发:
一,一个最小的WEB结构
from flask import Flask
webapp =Flask(__name__)
webapp.run()
是的,它已经可以运行了,默认运行在127.0.0.1:5000
二,项目确实是成功运行了,但是它没有任何可以访问的页面,现在就为它添加一个主页:
@app.route('/') #路由
def index(): #视图函数
return '''
<html>
<head>index</head>
<body>
<p>Welcome!</p>
</body>
</html>'''
这样我们访问http://127.0.0.1:5000/的时候就会返回一个head为index,body里只有一个p标签内容为Welcome的页面。
三,虽然我们有了页面,但是一千个页面就需要一千个视图函数,这样太不人性化了
@app.route('/info/<info>')#路由
defindex(info): #视图函数
return '''
<html>
<head>index</head>
<body>
<p>Welcome {0}!</p>
</body>
</html>'''.format(info)
现在我们就拥有了一个动态的页面,它能通过url中info/后面的字段作为变量,生成一个对应的页面。
这个Web服务器也像那么回事了。
from flask import Flask
webapp =Flask(__name__)
@app.route('/')#路由
def index(): #视图函数
return '''
<html>
<head>index</head>
<body>
<p>Welcome!</p>
</body>
</html>'''
@app.route('/info/<info>')#路由
def info(info): #视图函数
return '''
<html>
<head>index</head>
<body>
<p>Welcome, {0}!</p>
</body>
</html>'''.format(info)
if __name__ ='__main__:
webapp.run()
四,现在我们为WEB添加更多的参数支持
form flask_script import Manager
webmanager =Manager(webapp)
#……………………
if __name__ = ‘__main__’:
webmanager.run()
现在我们可以在命令行使用如下的命令了(文件名为web.py):
python3 web.py runserver –h 127.0.0.1 – p 8000
制定ip 和端口启动服务器,如果你拥有外部IP,外网也可以访问了
五,这里简单介绍一下MVC,M-模型,V-视图,C-控制器。更多的自行百度……
简单说就是,用户发送一个请求,由控制器接受处理,返回一个(数据)模型,视图通过模型中的数据补充自己并渲染一个html页面返回给用户(这里是我自己的理解,只针对这一部分)
这里使用的渲染模版是jinja2,已整合进Flask。
那么可以对index方法进行如下修改:
from flask import render_template
@app.route('/info/<info>')
def info(info):#视图函数
return render_template('info.html',info=info)
然后在template/info.html中写入
<html>
<head>index</head>
<body>
<p>Welcome {{ info }}!</p>
</body>
</html>
这样就能得到和之前一样的结果。这样的好处在于info.html页面可以被重复使用,更强大的是页面之间可以继承,重写,引入控制代码等等等等……
jinja2的更多相关内容自行百度……
基于Python的Web开发 Flask
使用Flask进行Web开发:
一,一个最小的WEB结构
from flask import Flask
webapp =Flask(__name__)
webapp.run()
是的,它已经可以运行了,默认运行在127.0.0.1:5000
二,项目确实是成功运行了,但是它没有任何可以访问的页面,现在就为它添加一个主页:
@app.route('/') #路由
def index(): #视图函数
return '''
<html>
<head>index</head>
<body>
<p>Welcome!</p>
</body>
</html>'''
这样我们访问http://127.0.0.1:5000/的时候就会返回一个head为index,body里只有一个p标签内容为Welcome的页面。
三,虽然我们有了页面,但是一千个页面就需要一千个视图函数,这样太不人性化了
@app.route('/info/<info>')#路由
defindex(info): #视图函数
return '''
<html>
<head>index</head>
<body>
<p>Welcome {0}!</p>
</body>
</html>'''.format(info)
现在我们就拥有了一个动态的页面,它能通过url中info/后面的字段作为变量,生成一个对应的页面。
这个Web服务器也像那么回事了。
from flask import Flask
webapp =Flask(__name__)
@app.route('/')#路由
def index(): #视图函数
return '''
<html>
<head>index</head>
<body>
<p>Welcome!</p>
</body>
</html>'''
@app.route('/info/<info>')#路由
def info(info): #视图函数
return '''
<html>
<head>index</head>
<body>
<p>Welcome, {0}!</p>
</body>
</html>'''.format(info)
if __name__ ='__main__:
webapp.run()
四,现在我们为WEB添加更多的参数支持
form flask_script import Manager
webmanager =Manager(webapp)
#……………………
if __name__ = ‘__main__’:
webmanager.run()
现在我们可以在命令行使用如下的命令了(文件名为web.py):
python3 web.py runserver –h 127.0.0.1 – p 8000
制定ip 和端口启动服务器,如果你拥有外部IP,外网也可以访问了
五,这里简单介绍一下MVC,M-模型,V-视图,C-控制器。更多的自行百度……
简单说就是,用户发送一个请求,由控制器接受处理,返回一个(数据)模型,视图通过模型中的数据补充自己并渲染一个html页面返回给用户(这里是我自己的理解,只针对这一部分)
这里使用的渲染模版是jinja2,已整合进Flask。
那么可以对index方法进行如下修改:
from flask import render_template
@app.route('/info/<info>')
def info(info):#视图函数
return render_template('info.html',info=info)
然后在template/info.html中写入
<html>
<head>index</head>
<body>
<p>Welcome {{ info }}!</p>
</body>
</html>
这样就能得到和之前一样的结果。这样的好处在于info.html页面可以被重复使用,更强大的是页面之间可以继承,重写,引入控制代码等等等等……
jinja2的更多相关内容自行百度……
相关文章推荐
- 使用Python写一个WEB服务器(额外(续))
- 使用Python写一个WEB服务器(额外)
- 使用Python写一个WEB服务器(续)
- Python 01 web服务器bottle的使用
- 使用python写一个web
- 使用TMG2010让多个web服务器共用一个公网地址
- Python Web服务器Tornado使用小结
- 使用Python编写免安装运行时、以Windows后台服务形式运行的WEB服务器
- 【LINUX】——linux如何使用Python创建一个web服务
- 一句Python命令启动一个Web服务器
- 使用Python的Twisted框架实现一个简单的服务器
- Linux 下 将使用Python-Django开发的web应用布置到服务器上(亲测有效)
- IronPython for ASP.NET:使用IronPython创建一个简单的Web页面
- 建立一个node.js服务器(使用express搭建第一个Web环境)
- 一句Python命令启动一个Web服务器
- Python之构建一个简单的web.py框架的服务器
- 利用python自带的包, 快速建立一个web服务器
- 使用python SimpleHTTPServer 快速搭建Web服务器
- Python web框架Django学习(1)——在win7 64bit下配置开发环境Django:一个可以使Web开发工作愉快并且高效的Web开发框架。 使用Django,使你能够以最小的代价构建和
- 通过一个Socket例子理解Http协议(实战Java Web服务器--使用HTTP协议和JAVA类实现)