Flask01-基本入门

2018-10-04  本文已影响0人  萌木盖

Flask-基本入门

简介

WEB工作原理

配置虚拟环境

使用测试

from flask import Flask

app = Flask(__name__)

@app.route('/')
def index():
    return '<h1>Hello world!</h1>'
    
if __name__ == '__main__':
    app.run()

请求与响应

视图函数

# 带参路由,参数写在尖括号中
@app.route('/welcome/<name>')
def welcome(name):
    return 'Hello %s!' % name


# 限制参数类型
@app.route('/user/<int:uid>')
def user(uid):
    return '%d 号,你好' % uid

# path类型参数
@app.route('/path/<path:p>')
def path(p):
    return p

# 多个参数处理
@app.route('/username/<name>/uid/<uid>')
def userinfo(name, uid):
    return name + uid

请求(request)

响应(resposne)

重定向(redirect)

终止(abort)

扩展:

详细代码

# manage.py
# 导入类库
from flask import Flask
from flask import request
from flask import make_response
from flask import redirect
from flask import url_for
from flask import abort

# 创建对象
app = Flask(__name__)


# 配置路由
@app.route('/')
def index():
    return 'Hello world'


# 无参路由
@app.route('/test/')
def test():
    return 'for test yyy'


# 带参路由,参数写在尖括号中
@app.route('/welcome/<name>')
def welcome(name):
    return 'Hello %s!' % name


# 限制参数类型
@app.route('/user/<int:uid>')
def user(uid):
    return '%d 号,你好' % uid

# path类型参数
@app.route('/path/<path:p>')
def path(p):
    return p

# 多个参数处理
@app.route('/username/<name>/uid/<uid>')
def userinfo(name, uid):
    return name + uid

@app.before_first_request
def first():
    print('first')



@app.route('/request/')
def req():
    # 完整的请求地址URL
    # return request.url
    # 不包含get参数的请求地址
    # return request.base_url
    # 只有主机和端口
    # return request.host_url
    # 只有装饰器中的路由地址
    # return request.path
    # 请求方式
    # return request.method
    # 远程客户端地址
    # return request.remote_addr
    # 获取get参数,有同名获取第一个
    # return request.args['name']
    # return request.args.get('password')
    # 获取一个键对应的所有值的列表
    # print(request.args.getlist('name'))
    # 获取请求头信息
    return request.headers['User-Agent']

# 响应
@app.route('/response/')
def response():
    # 响应,返回一个字符串即可,默认状码为200,表示ok
    # return 'OK'
    # 返回时可以直接指定状态码
    # return 'page not found', 404
    # 先用专门的函数构造一个响应对象,然后返回,可以指定状态码
    resp = make_response('这是通过函数构造的响应', 404)
    return resp

@app.route('/old/')
def old():
    # return '旧内容'
    # return redirect('/new/')
    # 根据视图函数名反向的构造出路由地址
    # return url_for('new')
    # 可以构造带参的路由
    # return url_for('welcome', name='xiaoming', uid=250)
    return redirect(url_for('new'))

@app.route('/new/')
def new():
    return '新内容'

@app.route('/abort/')
def err():
    # 抛出异常给系统,参数是状态码
    abort(404)
    return 'abort测试'

# 定制404错误
@app.errorhandler(404)
def page_not_found(e):
    return '大哥,是不是搞错了'

if __name__ == '__main__':
    # 启动
    app.run(debug=True, threaded=True, port=5050)

上一篇下一篇

猜你喜欢

热点阅读