写点什么

flask 框架学习总结(四)【 文件上传,实现最小应用,路径变量,模板继承】

作者:黎燃
  • 2022 年 5 月 24 日
  • 本文字数:785 字

    阅读完需:约 3 分钟

文件上传

index.html:
<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>Title</title></head><body ><form action="/login" method="post"> 用户名:<input type="text" name="username" value=""> 密码:<input type="password" name="password"> <input type="submit" value="提交">
</form><p style="color: red">{{error}}</p>
复制代码

实现最小应用

使用 pycharm 创建一个项目 project01,设置 Python 虚拟环境

路由

Flask 根据 HTTP 请求的 url 在路由表中匹配定义好的路由规则,找到对应的函数处理请求。


在这个过程中需要保存一个 url 到行数的映射关系,我们把处理 url 到函数之间的关系成为路由


flask 中的路由是使用装饰器的形式定义的,并且必须是/开头,否则报错

视图函数

视图函数是处理用户的请求,返回响应的函数代码块


在 Flask 中视图函数的名字不能重复

路径变量

如果希望获取/article/1 这样的路径参数,就需要使用路径变量。路径变量的语法是/path/。在路径变量前还可以使用可选的转换器,有以下几种转换器。


模板继承

一般我们的网站虽然页面多,但是很多部分是重用的,比如页首,页脚,导航栏之类的。对于每个页面,都要写这些代码,很麻烦。Flask 的 Jinja2 模板支持模板继承功能,省去了这些重复代码。让我们基于上面的例子,在”templates”目录下,创建一个名为”layout.html”的模板:


<!doctype html>
<title>Hello Sample</title>
<link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='style.css') }}">
<div class="page">
{% block body %}
{% endblock %}
</div>
复制代码


虽然”render_template()”加载了”hello.html”模板,但是”layout.html”的内容也一起被加载了。而且”hello.html”中的内容被放置在”layout.html”中”{% block body %}”的位置上。形象的说,就是”hello.html”继承了”layout.html”。

发布于: 刚刚阅读数: 4
用户头像

黎燃

关注

前端工程师 2022.05.06 加入

专注学习分享前端知识。

评论

发布
暂无评论
flask框架学习总结(四)【 文件上传,实现最小应用,路径变量,模板继承】_5月月更_黎燃_InfoQ写作社区