Flask基础——视图函数

1.安装pip install flask

安装终端解析:pip install flask-script

 

2.视图函数

from flask import Flask

 

app = Flask(__name__)

 

@app.route('/')

def index():

return 'Hello Flask!'

 

if __name__ == '__main__'

app.run()

 

  • 启动参数

app.run()里可以带的参数

debug = True

threaded = True

host = '0.0.0.0'

port = 5555

 

  • 要是终端启动的话

from flask_script import Manager

manager = Manager(app)

if __name__=='__main__'

manager.run()

终端启动时可以带的参数

-? --help

-h --host

-p --port

-d --dubug

-r --reload

--threaded 多个app同时打开,多线程

--processes 多个视频一起下载,多进程

 

路由参数

1.路由末尾的'/'建议都加上,防止出现路由多敲'/'出现的问题

2.若需要路由参数,参数需要放在<>中,对应的视图函数需要同名的参数

3.路由参数可以指定多个,也可以指定类型

4.常用参数类型:str(默认)、int、float、path,使用时放在参数前面,使用':'与参数连接

5.path类型其实是str类型,只是将'/'作为普通字符处理罢了。

 

  • 请求request

#request中存放了所有的HTTP请求信息

@app.route('/request/')

def req():

# 完整的路由地址

# return request.url

# 不包含GET参数的路由地址

# return request.base_url

# 只有协议主机和端口

# return request.host_url

# 只包含装饰器中的路由地址

# return request.path

# 请求方法的类型:GET、POST

# return request.method

# 客户端的IP

# return request.remote_addr

# args:GET参数;form:POST参数;values:GET和POST

# return request.args.get('uid', '默认值')

# headers:所有的请求头信息

return request.headers.get('User-Agent')

 

  • 响应response

@app.route('/response/')

def response():

# 直接返回字符串

# return 'OK'

# 可以在返回时指定状态码,默认都是200

# return 'page not found', 404

# 先用专门的函数构造一个响应对象,可以指定内容及状态码等

resp = make_response('我是通过函数构造的响应', 404)

# 设置响应头信息

resp.headers['uid'] = 250

return resp

 

  • 重定向redirct

@app.route('/old/')

def old():

# return '原来的数据'

# return redirect('/new/')

# 根据视图函数名反向构造路由地址,参数是视图函数名

# return url_for('new')

return redirect(url_for('new'))

@app.route('/new/')

def new():

return '新的数据'

 

  • 反向构造url url_for

@app.route('/urlfor/')

def urlfor():

# 不带参数的路由

# return url_for('new')

# 可以构造带参的路由,多出来的参数以GET形式传递

# return url_for('user', uid=250, name='cuihua')

# 构造完整(带协议主机和端口)路由,可以进行外部跳转

# return url_for('user', uid=250, name='cuihua', _external=True)

# 构造蓝本中的路由时参数这样传递:'蓝本名.视图函数名'

return url_for('blue.login')

 

  • 终止abort

@app.route('/abort/')

def err():

# 终止代码执行,其实是向系统抛出指定异常

# 系统捕获异常,按照统一的方案进行处理

abort(404)

return '正常'

 

  • 定制错误显示

@app.errorhandler(404)

def page_not_found(e):

return '是不是搞错了大哥?'

 

 

  • 注册蓝本

from user import user

# 注册蓝本,注册时可以再次设置先关参数,而且优先级较高

#第一个参数是蓝本中创建的实例化对象,关联该对象

app.register_blueprint(user, url_prefix='/u')

 

 

3.蓝本文件

user.py

#蓝本的使用

from flask import Blueprint,url_for

 

# 建一个蓝本实例:参数有蓝本名(唯一的),模板名,路由前缀

user = Blueprint('blue',__name__,url_prefix='/us')

 

# 路由通过实例自身的装饰器

@user.route('/login/')

def login():

# return '登录'

return url_for('.register')

 

@user.route('/register/')

def register():

return '注册'

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值