Flask框架基础入门教程_ezflaskapp
pip install flask
Flask 快速入门小应用
学东西,得先知道我们用这个东西,能做出来一个什么东西。
一个最小的基于flask 的应用可能看上去像下面这个样子:
from flask import Flask
app = Flask(__name__)@app.route('/')
def hello_world():return 'Hello World!'if __name__ == '__main__':app.run(0.0.0.0)
运行起来的效果就是这样的:
具体,这串代码什么意思?
首先,我们导入了Flask 这个类
然后编写了一个hello_world 函数,返回一个“Hello World”字符串
这也就是为啥我们能在网页上看到一串字符串的原因。
那么剩下的是什么?
@app.route('/')
这一串代码,官方解释为路由,其实就是告诉你当用户访问哪个路径的时候,调用下面装饰的这个函数。
所以上面那个小应用的代码,意思就是,当我访问根路径(‘/’)时执行hello_world函数。
当然,一个函数被多个路由装饰的时候,意味着你可以通过多个路径执行到该函数。
调用app的run方法即可启动服务,指定’0.0.0.0’,这会让操作系统监听所有公网 IP。
app.run(0.0.0.0)
再看看下面这个例子:
from flask import Flask
app = Flask(__name__)@app.route('/')
@app.route('/index')
def hello_world():return 'Hello World!'@app.route('/login')
def login():return 'Login Success!'if __name__ == '__main__':app.run(0.0.0.0)
EZ ~~
Flask 之模板的使用
经过上面的小应用,我们可以简单的利用flask生成一个小的网页,但是,这网页我想要加点样式怎么办?
一个最简单也是最懒的方法:就是让函数直接返回一串html代码
比如下面这个例子:
@app.route('/')
@app.route('/index')
def hello_world():def index():user = {'username': 'Cxiansheng'}return '''<html><head><title>Home Page - CSDN</title></head><body><h1>Hello, ''' + user['username'] + '''!</h1></body></html>'''
那么问题来了,我所有的函数都需要这串html代码怎么办?总不能所有的函数都返回一下这一段html代码吧。
这个时候,模板就派上用场了。
为了简化这些操作,Flask 配备了 Jinja2 模板引擎
我们把上面的html 代码装换成模板,命名为’index.html’:
<html><head><title>{{ title }} - CSDN</title></head><body><h1>Hello, {{ user.username }}!</h1></body>
</html>
然后就可以使用 render_template() 方法来渲染模板,传入必要的参数即可
@app.route('/')
@app.route('/index')
def hello_world():user = {'username': '这是模板生成的'}return render_template('index.html', title='Home', user=user)
偷懒成功,现在我们可以直接调用这个模板,而不需要手动返回html代码了。
突然一个念想:
那多个网页共有部分的html 代码可不可以也单独保存成一个模板?
例如CSDN的标题栏:
既然想偷懒,就继续偷懒下去吧。
我们可以利用模板继承的思想,去避免重复性的代码编写,例如:
我们利用上面的两个快速小应用,做一个标题栏,那么标题栏的html代码我们就可以做一个base.html用来给其他页面继承使用。
如何继承?
利用“{% extends ‘base.html’ %}”,即可继承base.html的代码
首先我们先看一下base.html的代码:
<html><head>{% if title %}<title>{{ title }} - CSDN</title>{% else %}<title>welcome - CSDN</title>{% endif %}</head><body><div>My Website:<a href="{{ url_for('index') }}">Home</a><a href="{{ url_for('login') }}">Login</a></div><hr>{% block content %}{% endblock %}</body>
</html>
其中 {% block content %}{% endblock %}这两个标识,即标记继承过来的代码所占的坑,也就是说,如果index.html 代码继承了base.html代码,那么index.html代码将会被放置在 {% block content %}{% endblock %}这两个标识之间。
下面看看index.html代码
{% extends 'base.html' %}
{% block content %}<h1>Hello {{ user.username }}!</h1>
{% endblock %}
相关文章:
Flask框架基础入门教程_ezflaskapp
pip install flaskFlask 快速入门小应用 学东西,得先知道我们用这个东西,能做出来一个什么东西。 一个最小的基于flask 的应用可能看上去像下面这个样子: from flask import Flask app Flask(__name__)app.route(/) def hello_world():ret…...
Anaconda 全面解析:从入门到精通的操作教程
大家好,我是滔滔,欢迎来到我的空间。先简单介绍下anconda 一、环境管理 轻松创建独立的 Python 环境:可以为不同的项目创建不同的环境,每个环境可以有不同的 Python 版本和安装不同的包,避免了包冲突问题。例如&…...
3D图形学与可视化大屏:什么是材质属性,有什么作用?
一、颜色属性 漫反射颜色 漫反射颜色决定了物体表面对入射光进行漫反射后的颜色。当光线照射到物体表面时,一部分光被均匀地向各个方向散射,形成漫反射。漫反射颜色的选择会直接影响物体在光照下的外观。例如,一个红色的漫反射颜色会使物体在…...
HTML-新浪新闻-实现标题-排版
标题排版 图片标签:<img> src:指定图片的url(绝对路径/相对路径) width:图片的宽度(像素/相对于父元素的百分比) heigth:图片的高度(像素/相对于父元素的百分比&a…...
.Net / C# 分析文件编码 并将 各种编码格式 转为 另一个编码格式 ( 比如: GB2312→UTF-8, UTF-8→GB2312)
相关库 .Net 8 编码识别: github.com/CharsetDetector/UTF-unknown <PackageReference Include"UTF.Unknown" Version"2.5.1" />代码 using UtfUnknown;var dir_path "D:\\Desktop\\新建文件夹2\\新建文件夹"; var dir_new_path &quo…...
本地部署 DeepSeek-R1 大模型
本地部署 DeepSeek-R1 大模型指南 1. 引言 1.1 DeepSeek-R1 模型简介 在人工智能的世界里,大型语言模型(LLM)正如一座巨大的宝库,里面储存着丰富的信息和无限的潜力。而DeepSeek-R1,就像那扇打开智慧之门的钥匙。它…...
canvas的基本用法
canvas canvas元素简介 1.是个container元素<canvas width100 height100></canvas>,有开闭标签 2.有且只有width和height两个attribute,不需要写单位 canvas的基本使用 const canvasEl document.getElementById(canvas01) const ctx …...
力扣【416. 分割等和子集】详细Java题解(背包问题)
首先我们可以求出数组和,当我们找到一个子集中元素的和为数组和的一半时,该就说明可以分割等和子集。 对于该问题我们可以转换成背包问题,求 数组里的元素 装入 数组和的一半大小的背包 能取得的最大值。 然后注意可以剪枝的地方。 代码&…...
UE学习日志#17 C++笔记#3 基础复习3
19.2 [[maybe_unused]] 禁止编译器在未使用某些内容时发出警告 19.3 [[noreturn]] 永远不会把控制权返回给调用点 19.4 [[deprecated]] 标记为已弃用,仍然可以使用但是不鼓励使用 可以加参数表示弃用的原因[[deprecated("")]] 19.5 [[likely]]和[[un…...
c++:vector
1.使用 1.1构造函数 常见的三种构造方式:空构造,拷贝构造,指定元素构造 1.2iterator begin和end也分为正向和反向。 注意:反向迭代器可以反向遍历是因为在定义rbegin和rend函数的时候把尾地址给到了rbegin,而不是说改…...
37. RGBLCD实验
一、RGBLCD显示原理简介 1、像素点 于一个“小灯“,不管是液晶屏,还是手机,平板,RGBLCD屏幕他都是有由一个个的彩色小灯构成的。彩色点阵屏每个像素点有三个小灯,红色、绿色和蓝色,也叫做RGB。RGB就是光的…...
反馈驱动、上下文学习、多语言检索增强等 | Big Model Weekly 第55期
点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入! 01 A Bayesian Approach to Harnessing the Power of LLMs in Authorship Attribution 传统方法严重依赖手动特征,无法捕捉长距离相关性,限制了其有效性。最近的研究利用预训练语言模型的…...
【深度分析】微软全球裁员计划不影响印度地区,将继续增加当地就业机会
当微软的裁员刀锋掠过全球办公室时,班加罗尔的键盘声却愈发密集——这场资本迁徙背后,藏着数字殖民时代最锋利的生存法则。 表面是跨国公司的区域战略调整,实则是全球人才市场的地壳运动。微软一边在硅谷裁撤年薪20万美金的高级工程师&#x…...
H. Mad City
题目链接:Problem - H - Codeforces 题目大意:给定一个带环的图, 以及a, b两点 判断再图上不断的移动, b想不与a相遇, a想捉到b, 并且二者只能移动一步。 若b跑不掉 NO 否则YES. 具体题目看链接 输入: …...
【C++】类与对象(下)
🦄 个人主页: 小米里的大麦-CSDN博客 🎏 所属专栏: 小米里的大麦——C专栏_CSDN博客 🎁 代码托管: 小米里的大麦的Gitee仓库 ⚙️ 操作环境: Visual Studio 2022 文章目录 1. 再谈构造函数1.1 构造函数体赋值1.2 初始化列表1.3 explicit 关键…...
AJAX案例——图片上传个人信息操作
黑马程序员视频地址: AJAX-Day02-11.图片上传https://www.bilibili.com/video/BV1MN411y7pw?vd_source0a2d366696f87e241adc64419bf12cab&spm_id_from333.788.videopod.episodes&p26 图片上传 <!-- 文件选择元素 --><input type"file"…...
Redis-布隆过滤器
文章目录 布隆过滤器的特点:实践布隆过滤器应用 布隆过滤器的特点: 就可以把布隆过滤器理解为一个set集合,我们可以通过add往里面添加元素,通过contains来判断是否包含某个元素。 布隆过滤器是一个很长的二进制向量和一系列随机映射函数。 可以用来检索…...
OpenCV 图像旋转
在学习 OpenCV 和 Matplotlib 处理图像时,遇到了一些关于 cv2.imread()、cv2.getRotationMatrix2D()、plt.imshow() 的问题: import cv2 import numpy as np import matplotlib.pyplot as pltimg cv2.imread(img2.png, 1) # 读取彩色图像(…...
联想Y7000+RTX4060+i7+Ubuntu22.04运行DeepSeek开源多模态大模型Janus-Pro-1B+本地部署
直接上手搓了: conda create -n myenv python3.10 -ygit clone https://github.com/deepseek-ai/Janus.gitcd Januspip install -e .pip install webencodings beautifulsoup4 tinycss2pip install -e .[gradio]pip install pexpect>4.3python demo/app_januspr…...
在线知识库创建与维护提升企业效率与知识共享能力
内容概要 在当今数字化快速发展的背景下,在线知识库逐渐成为企业管理信息的重要工具。其核心在于将知识进行系统化、结构化的整理和存储,便于员工获取和分享。这不仅提高了信息的访问效率,还促进了团队之间的协作。在线知识库的建立可以有效…...
C语言指针专题二 -- 字符指针与字符串
目录 1. 字符指针与字符串的核心原理 字符串的本质 字符串的存储 字符指针的特性 字符指针的操作 2. 编程实例 3. 常见陷阱与注意事项 4. 总结 1. 字符指针与字符串的核心原理 字符串的本质 C语言中没有独立的字符串类型,字符串本质是 以\0(空…...
玄武计划--干中学,知行合一
作为开发者转型安全领域有一定优势,但需要系统学习网络安全知识。以下是针对你的情况(Java背景 + 快速入门)的实战导向学习路径,分为基础、工具、漏洞利用和进阶四个阶段: 一、基础准备(1-2周) 网络协议与渗透基础 重点协议:深入理解 TCP/IP、HTTP/HTTPS、DNS、SMTP,用…...
处理 .gitignore 未忽略文件夹问题
本地删除缓存 例如 .idea 文件夹被其他同事误提交,那么他本地执行以下代码 git rm -r --cached .idea对应本地再提交即可...
实验七 JSP内置对象II
实验七 JSP内置对象II 目的: 1、掌握JSP内置对象的使用。 2、理解JSP的作用域 3、掌握session,application对象的使用 实验要求: 1、完成实验题目 2、要求提交实验报告,将代码和实验结果页面截图放入报告中 实验过程:…...
【Leetcode 每日一题 - 补卡】219. 存在重复元素 II
问题背景 给你一个整数数组 n u m s nums nums 和一个整数 k k k,判断数组中是否存在两个 不同的索引 i i i 和 j j j,满足 n u m s [ i ] n u m s [ j ] nums[i] nums[j] nums[i]nums[j] 且 ∣ i − j ∣ < k |i - j| < k ∣i−j∣<…...
Flask数据的增删改查(CRUD)_flask删除数据自动更新
查询年龄小于17的学生信息 Student.query.filter(Student.s_age < 17) students Student.query.filter(Student.s_age.__lt__(17))模糊查询,使用like,查询姓名中第二位为花的学生信息 like ‘_花%’,_代表必须有一个数据,%任何数据 st…...
web自动化——前端知识
<iframe> 是 HTML 中的一个元素,用于在当前网页中嵌入另一个网页或文档。它就像一个“窗口”,可以在页面中显示其他内容。 主要特点: 嵌入外部内容:可以在网页中嵌入其他网页、视频、地图等。独立上下文:嵌入的…...
计算机网络一点事(22)
地址解析协议ARP ARP:查询Mac地址 ARP表(ARP缓存):记录映射关系,一个数据结构,定期更新ARP表 过程:请求分组,响应分组 动态主机配置协议DHCP 分配IP地址,配置默认网关…...
SG算法解析
Savitzky-Golay 滤波器的核心代码主要集中在计算投影矩阵B并使用这个矩阵对输入信号进行滤波。这部分核心代码包括计算B矩阵、处理边界效应和进行实际滤波操作。以下是对核心代码的一点解释: ① 计算 Savitzky-Golay 投影矩阵B B sgolay(order, framelen, weight…...
Ubuntu Server连接wifi
背景 家里服务器放在客厅太吵了, 准备挪到阳台, 所以买了TP wifi接收器, 因此需要配置wifi连接. 刚开始买了Tenda Ax300, 结果不支持服务器系统, 买前还是得和客服交流交流. 准备 驱动安装 对于windows系统来说, 这款接收器是免驱的, 但在linux上需要安装相应型号驱动 安装…...
Linux 4.19内核中的内存管理:x86_64架构下的实现与源码解析
在现代操作系统中,内存管理是核心功能之一,它直接影响系统的性能、稳定性和多任务处理能力。Linux 内核在 x86_64 架构下,通过复杂的机制实现了高效的内存管理,涵盖了虚拟内存、分页机制、内存分配、内存映射、内存保护、缓存管理等多个方面。本文将深入探讨这些机制,并结…...
L30.【LeetCode笔记】设计链表
1.题目 707. 设计链表 - 力扣(LeetCode) 你可以选择使用单链表或者双链表,设计并实现自己的链表。 单链表中的节点应该具备两个属性:val 和 next 。val 是当前节点的值,next 是指向下一个节点的指针/引用。 如果是双向…...
使用Pygame制作“Flappy Bird”游戏
1. 前言 Flappy Bird 是一款“点击上浮、松手下落”的横向卷轴游戏: 场景中持续出现上下成对的管道,玩家需要让小鸟在管道之间穿行;每穿过一对管道记 1 分;若小鸟碰到管道或掉到地面,则游戏结束;一旦上手…...
PHP中配置 variables_order详解
variables_order 是 PHP 配置文件 php.ini 中的一项配置指令,决定了 PHP 在处理请求时,哪些类型的变量将被注册到全局变量空间(如 $GLOBALS)中,以及这些变量的顺序。理解和正确配置 variables_order 对于开发和维护安全…...
Go学习:运算符总结
在 Go语言中,一元运算符拥有最高的优先级,二元运算符的运算方向均是从左至右。 下表列出了所有运算符以及它们的优先级,由上至下代表优先级由高到低:...
JS面相对象小案例:自定义安全数组
在JS中,数组不像其他语言(java、python)中那样安全,它具有动态性和弱类型性,切越界访问没有具体的报错,而是返回空,为提升数组的安全性,我们可以自行定义一个安全数组。 一、增加报…...
将markdown文件转为word文件
通义千问等大模型生成的回答多数是markdown类型的,需要将他们转为Word文件 一 pypandoc 介绍 1. 项目介绍 pypandoc 是一个用于 pandoc 的轻量级 Python 包装器。pandoc 是一个通用的文档转换工具,支持多种格式的文档转换,如 Markdown、HTM…...
Unet 改进:在encoder和decoder间加入TransformerBlock
目录 1. TransformerBlock 2. Unet 改进 3. 完整代码 Tips:融入模块后的网络经过测试,可以直接使用,设置好输入和输出的图片维度即可 1. TransformerBlock TransformerBlock是Transformer模型架构的基本组件,广泛应用于机器翻译、文本摘要和情感分析等自然语言处理任务…...
LeetCode题练习与总结:两个列表的最小索引总和--599
一、题目描述 假设 Andy 和 Doris 想在晚餐时选择一家餐厅,并且他们都有一个表示最喜爱餐厅的列表,每个餐厅的名字用字符串表示。 你需要帮助他们用最少的索引和找出他们共同喜爱的餐厅。 如果答案不止一个,则输出所有答案并且不考虑顺序。…...
IBM数据与人工智能系列 安装 IBM 编程助手
登录CPD环境 ${CPDM_OC_LOGIN} 安装编程助手 cpd-cli manage apply-olm \ --release${VERSION} \ --cpd_operator_ns${PROJECT_CPD_INST_OPERATORS} \ --componentswca cpd-cli manage apply-cr \ --componentswca \ --release${VERSION} \ --cpd_instance_ns${PROJECT_CPD…...
细说机器学习算法之ROC曲线用于模型评估
系列文章目录 第一章:Pyhton机器学习算法之KNN 第二章:Pyhton机器学习算法之K—Means 第三章:Pyhton机器学习算法之随机森林 第四章:Pyhton机器学习算法之线性回归 第五章:Pyhton机器学习算法之有监督学习与无监督…...
unity学习25:用 transform 进行旋转和移动,简单的太阳地球月亮模型,以及父子级关系
目录 备注内容 1游戏物体的父子级关系 1.1 父子物体 1.2 坐标关系 1.3 父子物体实际是用 每个gameobject的tranform来关联的 2 获取gameObject的静态数据 2.1 具体命令 2.2 具体代码 2.3 输出结果 3 获取gameObject 的方向 3.1 游戏里默认的3个方向 3.2 获取方向代…...
如何利用天赋实现最大化的价值输出
这种文章,以我现在的实力很难写出来。所以需要引用一些视频。 上92高校容易吗 如果基于天赋努力,非常容易。 如果不是这样,非常非常难。 高考失败人生完蛋?复读考上交大,进入社会才发现学历只是一张纸,98…...
使用 postman 测试思源笔记接口
思源笔记 API 权鉴 官方文档-中文:https://github.com/siyuan-note/siyuan/blob/master/API_zh_CN.md 权鉴相关介绍截图: 对应的xxx,在软件中查看 如上图:在每次发送 API 请求时,需要在 Header 中添加 以下键值对&a…...
代码随想录33
目录 leetcode738.单调递增的字符串 优化过的算法: 困难模式:968.监控二叉树 leetcode738.单调递增的字符串 当且仅当每个相邻位数上的数字 x 和 y 满足 x < y 时,我们称这个整数是单调递增的。 给定一个整数 n ,返回 小于…...
解决Oracle SQL语句性能问题(10.5)——常用Hint及语法(7)(其他Hint)
10.5.3. 常用hint 10.5.3.7. 其他Hint 1)cardinality:显式的指示优化器为SQL语句的某个行源指定势。该Hint具体语法如下所示。 SQL> select /*+ cardinality([@qb] [table] card ) */ ...; --注: 1)这里,第一个参数(@qb)为可选参数,指定查询语句块名;第二个参数…...
FFmpeg(7.1版本)的基本组成
1. 前言 FFmpeg 是一个非常流行的开源项目,它提供了处理音频、视频以及其他多媒体内容的强大工具。FFmpeg 包含了大量的库,可以用来解码、编码、转码、处理和播放几乎所有类型的多媒体文件。它广泛用于视频和音频的录制、转换、流媒体传输等领域。 2. FFmpeg的组成 1. FFmp…...
Hypium+python鸿蒙原生自动化安装配置
Hypiumpython自动化搭建 文章目录 Python安装pip源配置HDC安装Hypium安装DevEco Testing Hypium插件安装及使用方法插件安装工程创建区域 Python安装 推荐从官网获取3.10版本,其他版本可能出现兼容性问题 Python下载地址 下载64/32bitwindows安装文件&am…...
文明的基因:在传承中破茧重生
敦煌莫高窟的壁画历经千年风雨,至今仍在向世界讲述着东方美学的密码。那些斑驳的壁画上,既有北魏时期的天竺梵音,也留存着盛唐气象的长安余韵。文明的基因从未停止生长,就像莫高窟的壁画师们在临摹前朝壁画时,总会在衣…...
因果推断与机器学习—用机器学习解决因果推断问题
Judea Pearl 将当前备受瞩目的机器学习研究戏谑地称为“仅限于曲线拟合”,然而,曲线拟合的实现绝非易事。机器学习模型在图像识别、语音识别、自然语言处理、蛋白质分子结构预测以及搜索推荐等多个领域均展现出显著的应用效果。 在因果推断任务中,在完成因果效应识别之后,需…...