flask========day01基础上午

MVT
M:模型 负责与数据库进行交互
V:视图(视图函数)负责业务逻辑的处理
T:模板 负责展示
MVC
M:模型 负责与数据库进行交互
V:视图(模板 负责展示)
C:控制器(视图(视图函数)负责业务逻辑的处理)
web网站架构:
1.B/S
浏览器–》服务器
2.c/s
客户端–》服务器
##一、Flsak框架
flask是一个非常小的pythonweb框架 被称之为微型框架 只有一个强健的核心
所有的功能都要依赖于第三方扩展库(要安装第三方扩展库)
pip install flask #安装flask
代码

from flask import Flask
app=Flask(__name__)
#路由访问地址:127.0.0.1:5000
#默认端口号5000
@app.route('/')
def index():
	return 'Hello Flask!'
if __name__ == '__main__'
	app.run()



| 参数     | 说明                        |
| -------- | --------------------------- |
| host     | 主机 默认127.0.0.1  0.0.0.0 |
| port     | 端口号 默认 5000            |
| debug    | 调试模式 默认False 开启True |
| threaded | 开启多线程(本地没意义的)  |

‘’’***实例
python
app.run(host=“0.0.0.0”,port=5001,debug=True,threaded=True)
‘’’
‘’’*开发:
python
app.run(debug=True)
‘’’

####(2)带一个参数的路由地址
‘’’
@app.route(’/arg/’)
def arg(argname):
return ‘参数argname的值为{}’.format(argname)
‘’’
###(3)一个参数并限制参数类型
‘’‘python
#限制参数类型
#参数默认类型都为字符串
#@app.route(’/arg//’)
#@app.route(’/arg/int:age/’)#限制参数类型为int类型
#@app.route(’/arg/float:age/’)#限制参数类型为float类型
#@app.route(’/arg/path:age/’)#限制参数为字符串类型‘/’不再做为分隔符,而是参数值得一部分
@app.route(’/arg/staring:age/’)#默认就为字符串
def arg(age):
print(type(age))
return ‘带一个参数的路由地址{}’.format(age)

‘’’

####(4)传递多个参数
‘’’
@app.route(’/args///’)#中间是’/’
@app.route(’/args//’)#中间是’
def args(arg1,arg2):
return '参数1的值为{} 参数2的值为{} '.format(arg1,arg2)

‘’’
####(5)参数可有可无的视图函数
‘’’
#可有可无参数的视图
@app.route(’/arg1/string:age/’)#默认就为字符串
@app.route(’/arg2/’)#默认就为字符串
def arg(age=‘default’):
print(type(age))
return ‘带一个参数的路由地址{}’.format(age)
‘’’
注意:

  1. 路由地址结尾的/ 建议都加上 如果在定义的时候没有/作为结尾 则访问的时候路由地址也不能有/ 否则404
  2. 如果定义的时候 有/作为结尾 但是访问的时候没有/ 则框架会自动301重定向 来帮你添加/
  3. 路由地址结尾的/如果

1.URL反转:根据视图函数名称得到当前所指向的url
2.url_for() 函数最简单的用法是以视图函数名作为参数,返回对应的url,还可以用作加载静态文件


from flask import  Flask,abort,request,Response#导入flask类
from flask import url_for,redirect
app = Flask(__name__)#类的实例化
@app.route('/testdirect/')#重定向
def testdirect():
    # return redirect('/')
    return  redirect('/arg1/张三/14/')
#一个参数
@app.route('/arg/<int:age>/')
def arg(age):
    return '年龄是:{}'.format(age)
#两个参数

@app.route('/')
def index():
    abort(404)
    # abort(500)
    return "首页"
@app.errorhandler(500)
def server_error(err):
    return '错误信息{}'.format(err)
@app.errorhandler(404)
def not_found(err):
    return '错误信息{}'.format(err)
rt0')
def abort0():
    abort(300)

@app.route('/abort1')
def abort1():
    abort(400)

@app.route('/abort2')
def abort2():
    abort(500)

@app.route('/abort3')
def abort3():
    abort('A test of flask.abort()')

@app.route('/abort4')
def abort4():
    abort(Response('A test of flask.abort(), Response, '))
@app.route('/abort5')
def abort5():
    abort()
@app.route('/abort6')
def abort6():
    cnum = request.args.get('num', '')
    if cnum == '' or  not cnum.isdigit():
        abort(404)
    else:
        abort(int(cnum))
def arg1(name,age):
    return '姓名是:{},年龄是:{}'.format(name,age)
if __name__=='__main__':#主文件运行flask,如果被别人导入则不运行
    app.run(host='127.0.0.1',port=5001,debug=True)

猜你喜欢

转载自blog.csdn.net/qq_42817166/article/details/83511194
今日推荐