Flask零基础--基础篇

Flask

工作项目中想在自己机器搭建一个服务器,使用到了flask,因为之前没接触过后台和服务器等知识,所以从使用角度进行下整理和总结。
上一篇我们搭建了最基础的hello,world服务。这一篇我们来让前端页面和后台有个小互动,进行最简单的数据传输。

Flask实现接口

我们调整下run.py的代码,增加一个接口函数

from flask import request

#链接传参方式,通过路由执行方法info,传参Key='data'
@app.route("/info",methods=['GET',])
def sendinfo():
    #获取到传入url中参数data对应的值
    data = request.args.get('data')
    return process("id",data)

def process(id,data):
    return "xixi,get!your data is:"+data

这样我们的链接需要给我们传入data数据,然后我们返回一个经过process处理后的结果。

Html页面

我们新建一个test.html,脚本比较简单

<!DOCTYPE html>
<html>
<head> 
<meta charset="utf-8"> 
<title>flask test</title> 
</head>
<body>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script type="text/javascript">
        function test(){
        //获取 输入框的值
        //alert(document.getElementById("test").value);
	vs = document.getElementById("test").value.replace(/\n/g,';')
	window.open('http://你的IP:5000/info?data='+vs);
        }
    </script>

<form action="demo-form.php">
<textarea id="test" rows="4" cols="50" name="comment" required>
</textarea>
</form>
<input type="submit" value="提交"  onclick="test()"/>
</body>
</html>

这里说明下我们demo传输的data参数比较少所以使用的GET方式,如果是图片这种还是建议使用POST方式,本篇就不多介绍POST方式传输数据了,如果需要大家可以评论留言进行讨论。

运行

OK,现在我们运行run.py
在这里插入图片描述
然后在本地打开页面
在这里插入图片描述
我们点击提交后,编辑框内的字符串作为参数传输到sendinfo函数内,然后返回给页面处理后的结果
在这里插入图片描述

跨域问题

	如果你的前端页面中使用了jquery在运行过程中可能会出现服务器能成功接收信息,但是页面没有反馈的问题,
	CORS policy `No Access-Control-Allow-Origin`的错误(浏览器打开开发者模式,可以看到出错信息)

在这里插入图片描述
这个主要是跨域问题,我们在run.py里加入以下代码就可以解决此问题

from flask_cors import CORS
# 跨域支持,解决jquery的跨域请求问题
CORS(app, supports_credentials=True)

部署静态页面

我们在使用过程中,也不能一直使用本地页面,所以需要把我们刚写好的html文件部署到外面服务器上,这样直接在浏览器输入链接来测试我们的页面功能。下面看下怎么把页面放到服务上。
我们在项目目录下新建一个static文件夹,然后把test.html页面放到static目录下
在这里插入图片描述
然后打开run.py文件,添加如下代码

#root_path就是你的工程路径
app = Flask(__name__,static_url_path='',root_path='/home/yourname/code/flask/yourproject/')
# 跨域支持,解决jquery的跨域请求问题
CORS(app, supports_credentials=True)
#加载静态页面
@app.route('/')
def loadhtml():
    #直接放在static
    return app.send_static_file('test.html')

然后再浏览器中输入ip:port/test.html(0.0.0.0:5000/test.html) 就可以看到我们的前端页面了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值