使用Flask中的变量规则路由:前后端示例

在现代Web开发中,动态路由是一个至关重要的功能。它允许我们根据URL路径中的变量来处理请求。在Flask中,这种路由称为"变量规则"。本文将通过一个完整的前后端示例,介绍如何在Flask中使用变量规则路由。

后端:Flask应用

首先,我们需要创建一个简单的Flask应用,该应用将展示如何定义和使用变量规则路由。假设我们有一个学生提交作业的功能,后端需要根据作业ID获取相应的提交记录。

创建Flask应用
  1. 创建一个新的Flask项目,并安装Flask:
  2. pip install flask
    

  3. 创建一个名为 app.py 的文件,编写以下代码:
  4. from flask import Flask, jsonifyapp = Flask(__name__)# 模拟数据
    submissions = {1: {'student_id': 101, 'submission': 'Assignment 1 Submission'},2: {'student_id': 102, 'submission': 'Assignment 2 Submission'},3: {'student_id': 103, 'submission': 'Assignment 3 Submission'}
    }@app.route('/instructor/submissions/<int:assignment_id>', methods=['GET'])
    def get_submission(assignment_id):submission = submissions.get(assignment_id)if submission:return jsonify(submission)else:return jsonify({'error': 'Submission not found'}), 404if __name__ == '__main__':app.run(debug=True)
    

 

在这个示例中,我们定义了一个路由 /instructor/submissions/<int:assignment_id>,其中 assignment_id 是一个整数变量。视图函数 get_submission 根据传入的 assignment_id 返回相应的提交记录。

运行Flask应用

在终端中运行以下命令启动Flask应用:

python app.py
前端:使用JavaScript发送请求

接下来,我们将编写一个简单的前端,使用JavaScript向我们的Flask后端发送请求,并显示结果。

创建HTML文件
  1. 创建一个名为 index.html 的文件,编写以下代码:
  2. <!DOCTYPE html>
    <html lang="en">
    <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Flask Variable Rule Example</title>
    </head>
    <body><h1>Fetch Assignment Submission</h1><label for="assignment_id">Assignment ID:</label><input type="number" id="assignment_id" name="assignment_id"><button onclick="fetchSubmission()">Fetch Submission</button><h2>Submission Details</h2><pre id="submissionDetails"></pre><script>function fetchSubmission() {const assignmentId = document.getElementById('assignment_id').value;fetch(`/instructor/submissions/${assignmentId}`).then(response => response.json()).then(data => {document.getElementById('submissionDetails').textContent = JSON.stringify(data, null, 2);}).catch(error => console.error('Error:', error));}</script>
    </body>
    </html>
    

    在这个示例中,我们创建了一个简单的HTML页面,包含一个输入框用于输入作业ID,以及一个按钮用于触发请求。JavaScript函数 fetchSubmission 获取输入的作业ID,并向Flask后端发送请求。请求的结果将以JSON格式显示在页面上。

    运行前后端代码
  3. 确保Flask应用正在运行。
  4. 打开浏览器,访问 index.html 文件所在的路径。

本文通过一个完整的前后端示例,介绍了如何在Flask中使用变量规则路由。我们定义了一个动态路由,通过变量规则解析URL路径中的参数,并展示了如何使用JavaScript向后端发送请求并处理响应。希望这个示例能帮助你更好地理解和使用Flask的变量规则路由。

在浏览器中输入一个作业ID,并点击“Fetch Submission”按钮,页面将显示相应的提交记录。如果输入的作业ID不存在,页面将显示错误信息。

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

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

相关文章

Auwoware算法节点解析

一、视觉 1.图像处理 image_processor 图像校正image_rectifier 图像旋转image_rotator 2.检测 vision_darknet_detect 模型包括单阶段的YOLOv2和YOLOv3&#xff0c;并提供COCO数据机上训练的权重 要求安装Nidia gpu &cuda vision_ssd_detect 模型是单阶段的SSD 基于Caffe …

【Git教程】(十九)合并小型项目 — 概述及使用要求,执行过程及其实现,替代解决方案 ~

Git教程 合并小型项目 1️⃣ 概述2️⃣ 使用要求3️⃣ 执行过程及其实现 在项目的初始阶段&#xff0c;往往需要针对重要的设计决策和技术实现原型实验。当原型评估结束后&#xff0c;需要将那些成功的原型合并起来称为整个项目的初始版本。 在这样的情景中&#xff0c;各个原…

php代码审计参考

代码审计思路&#xff1a; 从个人角度出发&#xff0c;如果环境允许的话&#xff0c;可以先选择做一个”程序员“再来做代码审计。因为从开发者的位置去思考问题&#xff0c;可以快速定位问题。学习面向对象编程以及面向过程编程&#xff0c;编写一些 项目提升对代码的理解能力…

Android Compose 六:常用组件 Button

Button 1 简单使用 Button(onClick { /*TODO*/ }) {Text(text "我是一只button里的text")}效果 颜色为什么是这个样子&#xff1f; 前面Text里我们讲过 主题色会影响组件的颜色 这里我使用的颜色如下 primary Color(0xFFFF0000),onPrimary Color(0xFF00FF00),p…

什么是合法IP地址?

IP地址&#xff0c;即互联网协议地址&#xff0c;是网络设备在互联网上进行通信的唯一标识符。IP地址有两种主要版本&#xff1a;IPv4和IPv6。为了保证网络通信的正常进行&#xff0c;IP地址需要是合法的。本文将详细阐述什么是合法IP地址&#xff0c;以及其重要性和验证方法。…

如何给实拍添加旋转模糊效果?视频模糊特效PR模板剪辑素材

PR特效模板&#xff0c;高级旋转模糊效果视频模板剪辑素材。 特征&#xff1a; After Effects 2019及以上兼容项目。 Premiere Pro 2021及以上兼容项目。 可用分辨率&#xff08;4K–HD–方形–移动&#xff09;。 不需要插件。 包括教程。 免费下载&#xff1a;https://prmu…

宝藏级丨图解项目管理全流程(上篇)

《项目管理知识体系指南》的定义&#xff1a;项目是为创造独特的产品、服务或成果而进行的临时性工作。项目管理就是将各种知识、技能、工具与技术应用于项目活动&#xff0c;以满足项目的要求。项目管理的全流程包括以下几个阶段&#xff1a; 项目启动阶段。这是开始一个新项…

GAN实例基于神经网络

目录 1.前言 2.实验 1.前言 需要了解GAN的原理查看对抗生成网络&#xff08;GAN&#xff09;&#xff0c;DCGAN原理。 采用手写数字识别数据集 2.实验 import argparse import os import numpy as np import mathimport torchvision.transforms as transforms from torchvi…

RedisTemplate使用最详解(三)--- opsForHash()

1、put(H var1, HK var2, HV var3) 新增hashMap值 var1 为Redis的keyvar2 为key对应的map值的keyvar3 为key对应的map值的值var2相同替换var3 redisTemplate.opsForHash().put("hashValue","map1","value1"); redisTemplate.opsForHash().put(&q…

Java官网下载JDK17版本详细教程(下载、安装、环境变量配置)

第一步&#xff0c;去百度搜索甲骨文官网 第二步 第三步 第四步 第五步 第六步 第七步 第八步 第九步 第十步 然后在系统变量里面找到path-编辑-新建添加这个,点击确定就好了 %JAVA_HOME%\bin 就完成了&#xff0c;接下来测试是否成功。 测试&#xff1a; 第一步&a…

VC++6.0 ListViewReport报表使用例子

操作步骤&#xff1a; 1&#xff0c;拖一个ListContorl控件 2&#xff0c;修改ID名称 3&#xff0c;设置Report样式 3&#xff0c;加入初始化代码 void CDuplicatefilesclearDlg::InitlizationListView() {CListCtrl *lstVew (CListCtrl*)GetDlgItem(IDC_LIST_Main);lstVew-&…

“联宝360“项目深度解析:创新模式与互助机制

大家好&#xff0c;我是吴军&#xff0c;来自一家知名的互联网科技公司&#xff0c;负责产品策略分析。 最近&#xff0c;我观察到社交网络上出现了一个名为“联宝360”的热门项目&#xff0c;它引发了众多团队长的热烈讨论和积极推广。这个项目虽然是在今年年初刚刚启动的&am…

CTP电池托盘市场调研报告-主要企业、市场规模、份额及发展趋势

CTP电池托盘市场报告主要研究&#xff1a; CTP电池托盘市场规模&#xff1a; 产能、产量、销售、产值、价格、成本、利润等 CTP电池托盘行业竞争分析&#xff1a;原材料、市场应用、产品种类、市场需求、市场供给&#xff0c;下游市场分析、供应链分析、主要企业情况、市场份…

羊大师分析,羊奶健康生活的营养源泉

羊大师分析&#xff0c;羊奶健康生活的营养源泉 羊奶&#xff0c;作为一种古老的饮品&#xff0c;近年来因其独特的营养价值和健康益处而备受关注。今天&#xff0c;羊大师就来探讨一下羊奶与健康之间的紧密联系。 羊奶富含蛋白质、脂肪、维生素和矿物质等多种营养成分。羊奶…

KeyValuePair和Dictionary和Tuple区别和应用

在C#中&#xff0c;Tuple 和 Dictionary 是两种不同的数据结构&#xff0c;它们各自有不同的用途和特性。以下是它们之间的主要区别&#xff1a; Tuple&#xff08;元组&#xff09; 定义&#xff1a;Tuple 是一个包含多个元素&#xff08;这些元素可以是不同类型的&#xff0…

如何做一个厂区的导航地图?工厂导航定位怎么解决方案

厂区定位导航是一种基于位置服务&#xff08;LBS&#xff09;的导航系统&#xff0c;通过获取厂区内的位置信息&#xff0c;为用户提供准确的导航服务。该系统能够实时显示用户当前位置&#xff0c;提供目的地导航、路径规划、实时定位、语音提示等功能&#xff0c;帮助用户快速…

卷积神经网络的理解

1. 神经网络主要分为5层&#xff0c;输入层&#xff0c;卷积层&#xff0c;池化层&#xff0c;全连接层和输出层 输入层&#xff0c;输入图像 卷积层&#xff0c;图片与卷积核的内积&#xff0c;得到一个特征图&#xff08;局部图&#xff09;&#xff0c; 激活层&#xff0…

KEBA科霸注塑机电脑维修KEMRO K2-700工业CNC控制器主机CPU主板

类别&#xff1a; 触摸屏液晶显示器 制造商&#xff1a; KEBA制造商部件号&#xff1a;K2-700系列&#xff1a;KEMRO K2-200 PLC也称为&#xff08;AKA&#xff09;&#xff1a;深圳捷达工控维修是您工业维修的最佳来源。 我们可以在我们的工厂维修您的 KEBA 型号 K2-700。让我…

Process Monitor下载安装使用教程(图文教程)超详细

「作者简介」&#xff1a;2022年北京冬奥会网络安全中国代表队&#xff0c;CSDN Top100&#xff0c;就职奇安信多年&#xff0c;以实战工作为基础对安全知识体系进行总结与归纳&#xff0c;著作适用于快速入门的 《网络安全自学教程》&#xff0c;内容涵盖系统安全、信息收集等…

maven的安装与配置(超详细)

在Java开发中&#xff0c;配置Maven环境有几个重要的原因&#xff1a; 依赖管理&#xff1a;Maven 是一个强大的依赖管理工具&#xff0c;它能够帮助开发人员轻松地管理项目所需的各种第三方库和组件。通过在项目的 Maven 配置文件&#xff08;pom.xml&#xff09;中定义依赖&…