Flask入门【1】

flask简介

flask是使用python编写的web微框架,我这里使用的是pycharm直接新建的flask项目进行操作。
在这里插入图片描述

代码解析

1.注册路由

# 注册路由,参数为url,使url与函数建立关联
@app.route('/')
def hello_world():
    return 'Hello, world!'

在一个web应用里,客户端和服务器上的Flask程序的交互可以简单概括为以下几步:

  1. 用户在浏览器中输入url访问某个资源
  2. Flask接受用户请求并分析请求的URL
  3. 为这个URL找到对应的处理函数
  4. 执行函数并生成响应,返回给浏览器
  5. 浏览器接收并解析响应,将信息显示在页面中。

Flask中,只需为函数附加app.route()装饰器,并传入URL规则作为参数,就可以让URL与函数建立关联。这个过程叫做注册路由,路由负责管理URL和函数之间的映射,而这个函数则被称为视图函数。
Tips:route装饰器的第一个参数是URL规则,必须以’/'开始,这里的url是相对url

2. 为视图绑定多个url

@app.route('/lol/')
@app.route('/lol/lol/')
def hello():
    return '<h1>LOL!</h1>'

用户访问以上两个url均会触发hello函数,获得相同的相应。

3. 动态URL

# 动态url,defaults中为name参数设置默认值,相当于def greet(name=Programmer):
@app.route('/greet', defaults={'name': 'Programmer'})
@app.route('/greet/<name>')
def greet(name):
    return f'<h1>Hello, {name}</h1>'

可以在url规则中添加变量成分,用<变量>的形式表示。Flask处理请求时会把变量传入视图函数,所以我们可以添加参数获取这个变量值。上述代码中,类似/greet/AAA,/greet/BBB等格式的请求都会触发这个视图函数。
除此之外,如果用户未添加变量,则会返回404错误。解决方法可以如上文,为greet视图新添加一个app.route()装饰器,为/greet设置默认值。该方法等效于在greet视图中设置name参数默认值

项目配置

点击这里前往Flask官方配置文档
Flask提供了许多方法来加载配置。

  • 比如,可以像加载字典中的键值对一样加载配置:app.config['ADMIN_NAME'] = 'PETER'
  • 使用update方法可以一次加载多个值。app.config.update{TESTING=TRUE,SECRET_KEY='114514'}
  • 读取config配置的方法和字典类似,如value = app.config['ADMIN_NAME']
    `

URL与端点

Flask中提供url_for()函数获取URL。调用该函数时,第一个参数为端点值(endpoint)。在Flask中,端点用来标记一个视图函数以及对应的URL规则,端点的默认值为视图函数的名称。在app.route()装饰器中,可以使用endpoint参数自定义端点值,不过一般没必要。

@app.route('/lol/lol/')
def hello():
    return '<h1>LOL!</h1>'

在这段代码中,使用url_for(‘hello’)即可获得对应的url,即’/lol/lol/’
如果URL中含有动态部分,则需要向url_for()函数中传入参数,如对应下列代码:

@app.route('/greet/<name>')
def greet(name):
    return f'<h1>Hello, {name}</h1>'

这时使用url_for(‘greet’, name=‘Jack’)得到的URL为’/greet/Jack’
Tips:若要获取绝对URL,则可以将url_for()函数中的_external参数设置为True

flask命令

除了内置的flask run等命令,也可以用app.cli.command()装饰器注册一个flask命令,如:

@app.cli.command()
def hello():
    click.echo('Hello,Man')

这时在终端输入 flask hello,就会打印出 Hello, Man的字样。

模板与静态文件

模板(template)

  • 程序页面的HTML文件

静态文件(static file)

  • css文件
  • JavaScript文件
  • 图片,字体文件等资源文件

MVC架构中,程序被分为三个组件

  1. 数据处理(Model)
  2. 用户界面(View)
  3. 交互逻辑(Controller)
    但严格来说,flask不是MVC架构的框架
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

赤赤赤赤赤赤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值