写在前面:参考于 《FlaskWeb开发:基于Python的Web应用开发实战》html
基于Python的Web开发 Flaskpython
使用Flask进行Web开发:web
一,一个最小的WEB结构flask
from flask import Flask webapp =Flask(__name__) webapp.run()
是的,它已经能够运行了,默认运行在127.0.0.1:5000服务器
二,项目确实是成功运行了,可是它没有任何能够访问的页面,如今就为它添加一个主页:app
@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的页面。webapp
三,虽然咱们有了页面,可是一千个页面就须要一千个视图函数,这样太不人性化了函数
@app.route('/info/<info>')#路由 defindex(info): #视图函数 return ''' <html> <head>index</head> <body> <p>Welcome {0}!</p> </body> </html>'''.format(info)
如今咱们就拥有了一个动态的页面,它能经过url中info/后面的字段做为变量,生成一个对应的页面。url
这个Web服务器也像那么回事了。spa
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的更多相关内容自行百度……