2.Python-用Flask框架创建一个简单的Web程序

news2025/1/19 16:57:30

怎么安装Flask框架

        在终端输入以下命令:

        pip install flask

        验证flask安装: 

        flask --version

 编写app.py文件

        app文件py如下: 

#导入flask框架中的两个模块
#Flask允许创建一个Flask应用实例,处理路由、请求和响应等功能
#render_template用于加载和渲染HTML模板文件
from flask import Flask, render_template

#通过将__name__作为参数传递给Flask类的构造函数,创建一个Flask应用实例,并将其赋值给变量app
app = Flask(__name__)

#@app.route()是一个装饰器,它指定了这个函数应该处理的URL路径
#def定义了一个python函数
#render_template()用于加载和渲染指定的HTML模板文件
@app.route('/')
def home():
    return render_template('index.html')

#/greet/<name>表示一个动态路径,其中 <name> 是一个占位符,表示可以在URL中传递一个参数
@app.route('/greet/<name>')
def greet(name):
    return render_template('greet.html', name=name)

#if __name__ == '__main__'是一个条件语句,它检查当前模块是否被直接执行
#当模块被直接执行时,__name__ 的值会被设置为 '__main__'
#app.run() 是一个方法调用,它启动了Flask应用程序的服务器
if __name__ == '__main__':
    app.run()
#导入flask框架中的两个模块
#Flask允许创建一个Flask应用实例,处理路由、请求和响应等功能
#render_template用于加载和渲染HTML模板文件
from flask import Flask, render_template

#通过将__name__作为参数传递给Flask类的构造函数,创建一个Flask应用实例,并将其赋值给变量app
app = Flask(__name__)

#@app.route()是一个装饰器,它指定了这个函数应该处理的URL路径
#def定义了一个python函数
#render_template()用于加载和渲染指定的HTML模板文件
@app.route('/')
def home():
    return render_template('index.html')

#/greet/<name>表示一个动态路径,其中 <name> 是一个占位符,表示可以在URL中传递一个参数
@app.route('/greet/<name>')
def greet(name):
    return render_template('greet.html', name=name)

#if __name__ == '__main__'是一个条件语句,它检查当前模块是否被直接执行
#当模块被直接执行时,__name__ 的值会被设置为 '__main__'
#app.run() 是一个方法调用,它启动了Flask应用程序的服务器
if __name__ == '__main__':
    app.run()

 

 编写index.html文件

        注意:html文件放在templates文件夹下,app.py放在根目录下

        index.html文件如下: 

<!DOCTYPE html>
<html>
<head>
    <title>Home</title>
</head>
<body>
    <h1>这是主页</h1>
    <!--传值给后端-->
    <p>点击 <a href="/greet/ngxe">这里</a> 跳转</p>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
    <title>Home</title>
</head>
<body>
    <h1>这是主页</h1>
    <!--传值给后端-->
    <p>点击 <a href="/greet/ngxe">这里</a> 跳转</p>
</body>
</html>

 

 编写greet.html文件

        greet.html文件如下:

<!DOCTYPE html>
<html>
<head>
    <title>Greet</title>
</head>
<body>
    <!--接受后端传过来的值-->
    <h1>你好, {{ name }}!</h1>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
    <title>Greet</title>
</head>
<body>
    <!--接受后端传过来的值-->
    <h1>你好, {{ name }}!</h1>
</body>
</html>

 

执行代码 

python app.py

        访问:

localhost:5000 

展示图

 

        觉得有用的话可以收藏或点赞! 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1095672.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

zookeeper应用场景(二)

单机环境下可以利用jvm级别的锁&#xff0c;比如synchronized、Lock等来实现锁&#xff0c;如果是多机部署就需要一个共享数据存储区域来实现分布式锁 一、分布式锁实现方式 1、基于数据库实现分布式锁 可以用数据库唯一索引来实现 2、基于redis实现分布式锁 redis实现的分…

测试除了点点点,还有哪些内容呢?

今天和一个网友讨论了一下关于互联网行业中测试的情况&#xff0c;希望能够了解现在的互联网行业主要的测试工作内容。小编根据以往的工作经历和经验情况&#xff0c;来做一个总结和整理。 1、岗位分类 现在的岗位划分主要是分为两大类&#xff1a;测试工程师 和 测试开发工程…

1、验证1101序列(Moore)

题目要求&#xff1a; 用Moore型状态机验证1101序列。 题目描述&#xff1a; 用使用状态机验证1101序列&#xff0c;注意&#xff1a;允许重复子序列。如图 端口描述&#xff1a; module moore_1101(input clk,//时钟信号input clr,//reset复位信号&#xff0c;高电平有效in…

Netty 入门 — 亘古不变的Hello World

这篇文章我们正式开始学习 Netty&#xff0c;在入门之前我们还是需要了解什么是 Netty。 什么是 Netty 为什么很多人都推崇 Java boy 去研究 Netty&#xff1f;Netty 这么高大上&#xff0c;它到底是何方神圣&#xff1f; 用官方的话说&#xff1a;Netty 是一款异步的、基于事…

【网络协议】聊聊ifconfig

我们知道在linux是ifconfig查看ip地址&#xff0c;但是ip addr也可以查看 IP 地址是一个网卡在网络世界的通讯地址&#xff0c;相当于我们现实世界的门牌号码。 从IP地址的划分来看&#xff0c;C类地址只可以容纳254个&#xff0c;而B类6W多&#xff0c;那么又没有一种折中的…

系统文件IO、文件描述符fd、重定向、文件系统、动态库和静态库

目录 C文件接口系统文件I/O系统调用和库函数文件描述符0 & 1 & 2FILE和fd的关系文件描述符的分配规则 重定向重定向的本质输出重定向输入重定向追加重定向 dup2函数 FILE理解文件系统了解磁盘的物理结构逻辑抽象文件系统文件系统的图解和解析通过文件系统来理解ls -al通…

74.C++ STL stack容器

目录 1.什么是stack 2.stack的构造函数 3.赋值操作 4.数据存取操作 5.大小操作 1.什么是stack stack 是 C 标准库中的容器适配器&#xff0c;它提供了一个堆栈&#xff08;栈&#xff09;数据结构的封装&#xff0c;用于管理元素的插入和移除。栈是一种后进先出的数据结构…

【RWKV】如何新增一个自定义的Tokenizer和模型到HuggingFace

0x0. 前言 RWKV社区在Huggingface上放了rwkv-4-world和rwkv-5-world相关的一系列模型&#xff0c;见&#xff1a;https://huggingface.co/BlinkDL/rwkv-4-world & https://huggingface.co/BlinkDL/rwkv-5-world &#xff0c;然而这些模型的格式是以PyTorch的格式进行保存的…

$ vue -Vbash: vue: command not found

$ vue -V bash: vue: command not found报这个错&#xff0c;我们需要找到vue安装路径&#xff0c;添加在环境变量的用户变量中&#xff1a; 1、vue安装路径 2、编辑环境变量 然后重新打开命令框&#xff0c;就可以了

嵌入式数据库sqlite3【基础篇】基本命令操作,小白一看就懂(C/C++)

目录 前言 一、sqlite概念和特性 二、sqlite安装 三、sqlite3数据类型 四、sqlite数据库约束 五、sqlite常用命令 六、SQL语句&#xff08;增删改查&#xff09; 七、sqlite使用实例&#xff08;教学管理数据库&#xff09; 总结 前言 数据在实际工作中应用非常广泛…

Linux网络编程系列之服务器编程——阻塞IO模型

Linux网络编程系列 &#xff08;够吃&#xff0c;管饱&#xff09; 1、Linux网络编程系列之网络编程基础 2、Linux网络编程系列之TCP协议编程 3、Linux网络编程系列之UDP协议编程 4、Linux网络编程系列之UDP广播 5、Linux网络编程系列之UDP组播 6、Linux网络编程系列之服务器编…

Stream流中的 max()和 sorted()方法

需求&#xff1a;某个公司的开发部门&#xff0c;分为开发 一部 和 二部 &#xff0c;现在需要进行年中数据结算。分析&#xff1a; 员工信息至少包含了&#xff08;名称、性别、工资、奖金、处罚记录&#xff09;开发一部有 4 个员工、开发二部有 5 名员工分别筛选出 2 个部门…

1.2 向量的长度与点积

一、向量的点积 两个向量 v ( v 1 , v 2 ) \boldsymbol v(v_1,v_2) v(v1​,v2​) 与 w ( w 1 , w 2 ) \boldsymbol w(w_1,w_2) w(w1​,w2​)的点积或内积是数字 v ⋅ w \boldsymbol v\cdot\boldsymbol w v⋅w&#xff1a; v ⋅ w v 1 w 1 v 2 w 2 ( 1.2.1 ) \boldsymbo…

【Agora UID 踩坑记录 Java 数据类型】

目录 负数二进制表示Java中32位无符号数的取法项目踩坑记录Java 0xffffffff隐式类型转换的坑 负数二进制表示 由于计算机中数据都以二进制表示&#xff0c;而负数的二级制是根据正数二进制取补码&#xff08;补码就是先取反码&#xff0c;然后加1&#xff09;得到&#xff0c;…

关于Gym变成Gymnasium

根据网页搜索的gym官网&#xff0c;发现如下网站https://www.gymlibrary.dev/ 刚进页面时 翻译一下&#xff0c;意思就是 Gym 的所有开发都已迁移到 Gymnasium,这是 Farama 基金会中的一个新软件包,由过去 18 个月来维护 Gym 的同一团队开发人员维护。如果您已经在使用最新版…

Java基础(运算符篇)

一、算术运算符 正号-负号加法-减法*乘法/除法%模运算&#xff08;取余&#xff09;自增--自减 算术运算符的使用比较简单&#xff0c;只需要注意一些细节。 tips&#xff1a; 加号&#xff08; &#xff09;除了可以作为正号&#xff0c;还可以用于字符串拼接。 public c…

解读下SWD协议以及其应用

SWD协议原理 SWD&#xff08;Serial Wire Debug&#xff09;协议是一种用于ARM Cortex微控制器的调试接口协议。它定义了主机计算机与目标设备之间通过SWD线进行通信的格式和规范。 SWD协议使用两根线进行通信&#xff1a;SWDIO&#xff08;Serial Wire Debug I/O&#xff09…

跳石板(牛客)

目录 一、题目 二、代码 &#xff08;一&#xff09;解法一&#xff1a;超时了 &#xff08;二&#xff09;优化 一、题目 跳石板_牛客题霸_牛客网 二、代码 &#xff08;一&#xff09;解法一&#xff1a;超时了 #include <climits> #include <iostream> …

python的pyecharts第三方模块绘制高端统计图表

pyecharts库 python的pyecharts库是一个用于生成 Echarts 图表的python第三方类库&#xff0c;可以绘制很高端的统计图表以便展示数据。 安装方法 pip安装 pip install pyecharts或者github拉取下载安装 git clone https://github.com/pyecharts/pyecharts.git cd pyechar…

Android 内容提供者和内容观察者:数据共享和实时更新的完美组合

任务要求 一个作为ContentProvider提供联系人数据另一个作为Observer监听联系人数据的变化&#xff1a; 1、创建ContactProvider项目&#xff1b; 2、在ContactProvider项目中用Sqlite数据库实现联系人的读写功能&#xff1b; 3、在ContactProvider项目中通过ContentProvid…