需求:通过页面点击完成简单的投票系统功能。

相关文件:

设计思路:

1、前端:提供可以投票的入口。查询的入口。(前端不做数据处理,只做展示)

使用<a>  </a> 完成超链接的接收数据

设置超链接的按钮:提供投票和查询功能

2、后端:数据存储:可以通过txt文件做简单的数据存储。提供新增数据的接口,查询的接口。

数据存储为字典格式,放在txt文件中。

voteF.txt:{'1号': 104, '2号': 44}

在app.py中写3个接口:

  • 请求接口可返回html页面
  • 请求投票接口可以更新数据到txt文件中
  • 请求查询接口可以返回最新的txt文件数据

3、具体页面实现截图:

请求链接:http://127.0.0.1:5000/test

备注:投票的是同个接口,只是参数不同。

4、相关代码

voteF.txt

{'1号': 108, '2号': 44}

  

app.py

from flask import Flask, render_template, jsonify, request, redirect, url_for
import os app = Flask(__name__)
app.config.update(DEBUG=False)
@app.route('/test', methods=['GET'])
def test():
# print(namme)
return render_template('output.html') @app.route('/vote/<string:name>/',methods=['GET', 'POST'])
def vote(name):
F = open("D:\\XXX\\static\\voteF.txt","r+",encoding="utf-8")
votelist = F.read()
print(votelist)
F.close()
tmp = eval(votelist)#读取的str转换为字典
print(tmp)
for key,value in tmp.items():
if name == key://如果名字会等于key
tmp.get(key,value)
# print(key,value)
tmp[key] = value + 1//将key的value+1
F = open("D:\\XXX\\static\\voteF.txt", "w+",encoding="utf-8")
F.write(str(tmp))//写入文件中
F.close() # return render_template('output.html')
print("投票成功")
return "为{}投票成功".format(name) @app.route('/voteF.txt')
def query():
# F = open("voteFF.txt", "r+")
# lines = F.read()
# return render_template('output.html', lines = lines) return redirect(url_for('static',filename='voteF.txt'))
  

  

html

 <body style="color:black">
<a href="http://127.0.0.1:5000/vote/1号/">为1号投票</a>
<a href="http://127.0.0.1:5000/vote/2号/">为2号投票</a><br>
<a href="http://127.0.0.1:5000/static/voteF.txt" οnclick="location.reload()">查看当前票数 <object><meta http-equiv="refresh" content="1" ></object></a>
</body>

  

丸子要加油呀

by:丸子

flask完成前后端分离实例的更多相关文章

  1. Flask + vue 前后端分离的 二手书App

    一个Flask + vue 前后端分离的 二手书App 效果展示: https://blog.csdn.net/qq_42239520/article/details/88534955 所用技术清单 ...

  2. SpringBoot +Vue 前后端分离实例

    今天下了Vue,想试一试前后端分离的实现,没想到坑还不少,这里就记录一下我遇到的坑和我的代码: 一.Vue的下载安装:从网上找就好了,没什么问题,除了下载以后,要把镜像库改成淘宝的,要不然太慢了. 二 ...

  3. 关于flask(前后端分离)的后端开发的小白笔记整理(含postman,jwt,json,SQLAlchemy等)

    首先是提醒自己的一些唠嗑: 学会劳逸结合,文档看累了可以看视频,动手操作很关键,遇到问题先动脑子冷静地想,不要跟着步骤都不带脑子,想不出来了再查一查!有时候打出来的代码很虚,但是实践不花钱,实践出真知 ...

  4. React+Flask打造前后端分离项目开发环境

    目录 前言 Backend-Flask Frontend-React Done References 前言 新的一年,开始水第一篇技术文.碰巧最近React玩得多,撸一篇文章纪念一下开发环境的搭建.

  5. Flask前后端分离项目案例

    简介 学习慕课课程,Flask前后端分离API后台接口的实现demo,前端可以接入小程序,暂时已经完成后台API基础架构,使用postman调试. git 重构部分: token校验模块 auths认 ...

  6. Flask & Vue 构建前后端分离的应用

    Flask & Vue 构建前后端分离的应用 最近在使用 Flask 制作基于 HTML5 的桌面应用,前面写过<用 Python 构建 web 应用>,借助于完善的 Flask ...

  7. Python Flask高级编程之RESTFul API前后端分离精讲 (网盘免费分享)

    Python Flask高级编程之RESTFul API前后端分离精讲 (免费分享)  点击链接或搜索QQ号直接加群获取其它资料: 链接:https://pan.baidu.com/s/12eKrJK ...

  8. Flask之RESTFul API前后端分离

    Flask之RESTFul API前后端分离 一:虚拟环境搭建的两种方式 1 pipenv的使用 pip install --user pipenv安装pipenv在用户目录下 py -m site ...

  9. 前后端分离中,Gulp实现头尾等公共页面的复用

    前言 通常我们所做的一些页面,我们可以从设计图里面看出有一些地方是相同的.例如:头部,底部,侧边栏等等.如果前后端分离时,制作静态页面的同学,对于这些重复的部分只能够通过复制粘贴到新的页面来,如果页面 ...

随机推荐

  1. Array(数组)对象-->indexOf() 方法

    1.定义和用法 indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置,即下标. 如果没有找到匹配的字符串则返回 -1. 语法: string.indexOf(searchvalue ...

  2. vue-resource安装与使用

    vue-resource是vue中使用的请求网络数据的插件,这个插件是依赖于vue的,简单说就是用来调接口的. 安装 cd 项目目录 npm i vue vue-resource --save-dev ...

  3. [一起面试AI]NO.9 如何判断函数凸或非凸

    首先定义凸集,如果x,y属于某个集合M,并且所有的θx+(1-θ)f(y)也属于M,那么M为一个凸集.如果函数f的定义域是凸集,并且满足 f(θx+(1-θ)y)≤θf(x)+(1-θ)f(y) 则该 ...

  4. Java学习成长第一集

    由于最近所在项目组的项目临近结尾,所以有时间对自己近来的学习做个总结.不得不说,程序员不学习就退步这句话是真的很让人信服!自己入行将近一年的时间,所学的就是Java开发的专业,很羞愧的是现在的自己能力 ...

  5. 2019-07-31【机器学习】无监督学习之聚类 K-Means算法实例 (图像分割)

    样本: 代码: import numpy as np import PIL.Image as image from sklearn.cluster import KMeans def loadData ...

  6. el-tab-pane label的文字内容怎样设间距

    el-tab-pane label的文字内容怎样设间距 问题描述: 在使用element-ui的el-tab-pane做标签页时,label属性的位置与样式不能通过style样式直接解决 百度后几乎没 ...

  7. redis: Set集合类型(五)

    Set里面的值是不能重复的 Set设置值(头部):sadd myset hello Set获取值:smembers myset 检查Set是否包含某个元素:sismember myset hello ...

  8. 架构设计 | 分布式业务系统中,全局ID生成策略

    本文源码:GitHub·点这里 || GitEE·点这里 一.全局ID简介 在实际的开发中,几乎所有的业务场景产生的数据,都需要一个唯一ID作为核心标识,用来流程化管理.比如常见的: 订单:order ...

  9. 随笔之——伪类选择器:nth-child(n) 与 nth-of-type(n)的区别!!!

    话不多说!直接正题!!! 一.E:nth-child(n)///选中父元素中第(n)个元素.若第n个元素为E则选中:若第n个不为E则不选中.n可以为2n(偶数).2n+1(奇数).等... 二.E:n ...

  10. 大部分人都不知道的8个python神操作

    01 print 打印带有颜色的信息 大家知道 Python 中的信息打印函数 Print,一般我们会使用它打印一些东西,作为一个简单调试. 但是你知道么,这个 Print 打印出来的字体颜色是可以设 ...