flask 检测post是否为空_用Flask和Vue制作一个单页应用(五)
使用POST向后台发送数据
Flask app修改
可以直接使用现有的路由处理函数来接收前端发来的数据,server/app.py
中的all_res()
修改如下:
@app.route('/resources', methods=['GET', 'POST'])
def all_res():response_object = {'status': 'success'}if request.method == 'POST':post_data = request.get_json()RESOURCES.append({'sn': post_data.get('sn'),'teacher': post_data.get('teacher'),'learnt': post_data.get('learnt')})response_object['message'] = '资源添加成功!'else:response_object['resources'] = RESOURCESreturn jsonify(response_object)
并从flask
引入request
:
from flask import Flask, jsonify, request
更改之后,启动或重启Flask服务器。
可以通过curl
命令来测试POST:
curl -X POST http://localhost:5000/resources -d '{"sn": "JUFE-069", "teacher": "雪美千夏", "learnt": "true"}' -H 'Content-Type: application/json'
也可以使用工具Postman来测试POST是否工作。
在Postman中新建一个Request,如图,选择类型为POST
,网址填 http://localhost:5000/resources
,Body部分选raw,类型为JSON,并填入一个资源数据{"sn": "JUFE-069", "teacher": "雪美千夏", "learnt": "true"}
,点击Send之后,可以看到下面返回200 OK
和具体内容:
{"message": "资源添加成功!", "status": "success"
}
此时再在浏览器中访问 http://localhost:5000/resources ,可以看到多了一条记录:
具体如何使用curl或如何安装和使用Postman,可以参考网上相关介绍。
Vue app修改
下面,需要为页面添加输入模态框(modal)。打开client/src/components/Resources.vue
,在</div></template>
前面添加如下代码:
<b-modal ref="addResModal"id="res-modal"title="添加新资源"hide-footer><b-form @submit="onSubmit" @reset="onReset" class="w-100"><b-form-group id="form-sn-group"label="编号:"label-for="form-sn-input"><b-form-input id="form-sn-input"type="text"v-model="addResForm.sn"requiredplaceholder="输入编号"></b-form-input></b-form-group><b-form-group id="form-teacher-group"label="老师:"label-for="form-teacher-input"><b-form-input id="form-teacher-input"type="text"v-model="addResForm.teacher"requiredplaceholder="输入老师姓名"></b-form-input></b-form-group><b-form-group id="form-learnt-group"><b-form-checkbox-group v-model="addResForm.learnt" id="form-checks"><b-form-checkbox value="true">已学习?</b-form-checkbox></b-form-checkbox-group></b-form-group><b-button type="submit" variant="primary">提交</b-button><b-button type="reset" variant="danger">重置</b-button></b-form>
</b-modal>
然后更新<script></script>
的内容:
<script>
import axios from 'axios';export default {data() {return {resources: [],addResForm: {sn: '',teacher: '',learnt: [],},};},methods: {getResources() {const path = 'http://localhost:5000/resources';axios.get(path).then((res) => {this.resources = res.data.resources;}).catch((error) => {// eslint-disable-next-lineconsole.error(error);});},addRes(payload) {const path = 'http://localhost:5000/resources';axios.post(path, payload).then(() => {this.getResources();}).catch((error) => {// eslint-disable-next-lineconsole.log(error);this.getResources();});},initForm() {this.addResForm.sn = '';this.addResForm.teacher = '';this.addResForm.learnt = [];},onSubmit(evt) {evt.preventDefault();this.$refs.addResModal.hide();let learnt = false;if (this.addResForm.learnt[0]) learnt = true;const payload = {sn: this.addResForm.sn,teacher: this.addResForm.teacher,learnt,};this.addRes(payload);this.initForm();},onReset(evt) {evt.preventDefault();this.$refs.addResModal.hide();this.initForm();},},created() {this.getResources();},
};
</script>
在<template>
中找到添加资源
按钮的那个button标签,修改如下:
<button type="button" class="btn btn-info btn-sm" v-b-modal.res-modal>添加资源</button>
测试一下添加资源:
下一节,我们将会在页面上显示添加资源成功的提示。
王加加:用Flask和Vue制作一个单页应用(六)zhuanlan.zhihu.com
flask 检测post是否为空_用Flask和Vue制作一个单页应用(五)相关推荐
- flask 检测post是否为空_使用Flask搭建一个校园论坛-4
在上一节中完成了注册功能的前期准备工作,在这一节内容中将完成用户注册.登录功能. 1.知识预览 在本届中将学习到以下内容的知识 如何使用wtform来渲染表单 如果使用flask-mail来发送邮件 ...
- python制作一个教学网站_小白如何入门Python? 制作一个网站为例
首先最重要的问题是为什么要学习python?这个问题这个将指导你如何学习Python和学习的方式. 以你最终想制作一个网站为例.从一个通用的学习资源列表开始不仅会消磨你的激情,而且你获得的知识很难应用 ...
- python可以制作网站吗_小白如何入门Python? 制作一个网站为例
首先最重要的问题是为什么要学习python?这个问题这个将指导你如何学习Python和学习的方式. 以你最终想制作一个网站为例.从一个通用的学习资源列表开始不仅会消磨你的激情,而且你获得的知识很难应用 ...
- css响应式布局_用 CSS Grid 布局制作一个响应式柱状图
最新一段时间比较喜欢玩弄图表,出于好奇,我想找出比较好的用 CSS 制作图表的方案.开始学习网上开源图表库,它对我学习新的和不熟悉的前端技术很有帮助,比如这个:CSS Grid. 今天和大家分享我学到 ...
- node 获取表单数据 为空_像声明类型一样写表单——基础功能
从最简单的开始实现,先看一个最简单的场景 先实现这一部分. 首先,我们要遵循一个基本原则,尽量写视图无关的代码. 所以我们把整套代码分成两部分: Core:核心部分,没有任何 React 相关代码的数 ...
- 消消乐实现下坠_教你用Vue写一个开心消消乐
之前做过一个算法题,算法要求就是写一个开心消消乐的逻辑算法,当时也是考虑了一段时间才做出来.后来想了想,既然核心算法都有了,能不能实现一个开心消消乐的小游戏呢,于是花了两天时间做了一个小游戏出来. 效 ...
- python接水果游戏代码_【Python】python制作一个接水果和金币的小游戏
开发工具 Python版本:3.6.4 相关模块: pygame模块: 以及一些Python自带的模块. 相关文件 环境搭建 安装Python并添加到环境变量,pip安装需要的相关模块即可. 原理简介 ...
- vue 一个组件内多个弹窗_论如何用Vue实现一个弹窗-一个简单的组件实现
前言 最近在使用element-ui框架,用到了Dialog对话框组件,大致实现的效果,跟我之前自己在移动端项目里面弄的一个弹窗组件差不太多.然后就想着把这种弹窗组件的实现方式与大家分享一下,下面本文 ...
- java类只读怎么办_如何在Java中制作一个只读类?
java类只读怎么办 The question is that "can we make a read-only class in Java?" 问题是"我们可以用Jav ...
最新文章
- 通过PowerShell开源社区的Win32-OpenSSH来管理你的Windows服务器
- g++ 编译pybind
- [Apache]网站页面静态化与Apache调优(图)
- java中script类_在Scripting java(javax.script)中导入一个类
- 你真的了解用户吗?-浅谈《用户画像》的意义和方法
- 微服务pact测试框架_消费者驱动的Pact和Spring Boot测试
- php mysql存中文,PHP+MySQL存储数据常见中文乱码问题小结
- Dubbo-gok8s注册中心设计方案与实现
- 《数据结构C语言版》——线性表详解,你一定能够看得懂学得会的宝典
- 关于软件定义IT基础设施的未来,深信服是这么思考的
- kep server 6.4 激活_轻松一点,一触屏蔽!5G和未来显示的福音——低压激活,敏感元器件专用保护方案...
- JavaEE学习13--Jquery
- Answers To The Questions from GiGabyte
- java jquery分页_如何最简单的实现java分页
- java dbaResult_资深DBA经验总结 Oracle数据库最佳实践 PDF 下载
- 松下plc安装序列号afpsgr7_《松下PLC 编程软件 FPWINGR7 操作手册 中文高清版》.pdf...
- FastStone Capture 7.7 截图工具下载地址及使用
- JavaScript 基础概念
- 完美黑苹果clover EFI BigSur11.2 神舟K580c i5 BCM94360HMB WIFI蓝牙二合一网卡
- Spring之IOC