########Flask框架#######
## 对于flask框架的理解
- 对于Flask框架而言,它属于众多Python Web开发框架的一种,如果说Django是一个自带后台管理的全能型的框架,那么Flask则是一种非常轻便使用的框架,它提供了搭建Web服务的必要组建,并且具有良好的扩展性。
## 对于Flask的基本用法理解
- 导入 Flask类
from flask import Flask
- 实例化一个Flask对象
app = Flask(__name__)
# __name__是模块的名称或者包的名称 作用: __name__ 参数传给 Flask类的构造函数,创建了一个程序实例app,也就创建了一个Flask集成的开发Web服务器;Flask用 __name__ 这个参数决定程序的根目录,以便程序能够找到相对于程序根目录的资源文件位置,比如静态文件等.
- 基本路由:通过路由绑定一个试图函数
# @app.route('/'): 告诉Flask哪个URL才能出发对应的函数, 又称为路由;对应定义了一个视图函数,也就是返回给用户 浏览器显示的内容
@app.route('/')
def index():
return "<h1>hello world</h1>"
@app.route('/login/')
def login():
return "login"
- 运行Flask应用,可以指定IP和端口
app.run('0.0.0.0', 9000) # '0.0.0.0' 所有的IP都可以访问到
from flask import Flask
app = Flask(__name__)
@app.route('/')
def test():
return 'test'
@app.route('/login/')
def login():
return 'login'
app.run('0.0.0.0', 5000)
## 路由于变量规则
- 在flask框架中常见的路由规则里
# url的一部分可以标记未变量<变量名> 例如:int,string,float,path,uuid
# 比如http:www.douban.org/123457677/comments/
from flask import Flask
app = Flask(__name__)
@app.route('/<int:id>/comment')
def comment(id):
return 'comment id : %s' % (id)
@app.route('/1234567/<string:user>/')
def id(user):
return 'id %s' % (user)
app.run(port=5001)
## 特殊的url地址
# 特殊的url地址: http://www.baidu.com/query?id=123&name=houzeyu
@app.route('/query')
def query():
# 获取url地址里面key对应的value值
id = request.args.get('id')
name = request.args.get('name')
return "id:%s, name:%s" % (id, name)
## URL构建与反向URL
from flask import Flask, request, url_for
app = Flask(__name__)
@app.route('/welcome/<string:user>')
def welcome(user):
return user + "欢迎!"
@app.route('/path/')
def path():
print(request.headers)
# 查看默认url地址的请求方法;
# methods is a list of methods this rule should be limited
# to (``GET``, ``POST`` etc.). By default a rule
# just listens for ``GET``
print(request.method)
# url_for: 根据函数名, 反向生成url地址
return "用户正在访问url地址:%s" % (url_for(endpoint='welcome', user='houzeyu'))
# response = url_for(endpoint='welcome', user='houzeyu')
# return response
app.run(port=5003)
## _常见HTTP方法之POST与GET
- 常见的HTTP请求方法
- GET方法:获取信息,提交的信息会显示在URL里面
- POST方法:提交信息,不会显示在url里面,而是提交给后台处理,有利于数据的安全性
- 默认路由请求的方法是GET 方法,所以我们需指定多个HTTP请求方法,例如:
# @app.route('/route/', methods = ['GET', 'POST'])
# 在后台可以用 request.method 来查看用户请求的HTTP方法
# 获取用户POST请求提交的表单数据:request.form['name的值']
<