前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Flask零基础--基础篇

Flask零基础--基础篇

作者头像
languageX
发布2021-01-29 10:34:34
5820
发布2021-01-29 10:34:34
举报
文章被收录于专栏:计算机视觉CV计算机视觉CV

Flask零基础--基础篇

Flask

工作项目中想在自己机器搭建一个服务器,使用到了flask,因为之前没接触过后台和服务器等知识,所以从使用角度进行下整理和总结。

上一篇我们搭建了最基础的hello,world服务。这一篇我们来让前端页面和后台有个小互动,进行最简单的数据传输。

Flask实现接口

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

代码语言:javascript
复制
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,脚本比较简单

代码语言:javascript
复制
<!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函数内,然后返回给页面处理后的结果

跨域问题

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

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

代码语言:javascript
复制
from flask_cors import CORS
# 跨域支持,解决jquery的跨域请求问题
CORS(app, supports_credentials=True)

部署静态页面

我们在使用过程中,也不能一直使用本地页面,所以需要把我们刚写好的html文件部署到外面服务器上,这样直接在浏览器输入链接来测试我们的页面功能。下面看下怎么把页面放到服务上。

我们在项目目录下新建一个static文件夹,然后把test.html页面放到static目录下

然后打开run.py文件,添加如下代码

代码语言:javascript
复制
#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) 就可以看到我们的前端页面了。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-09-01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Flask零基础--基础篇
  • Flask
    • Flask实现接口
      • Html页面
        • 运行
          • 跨域问题
            • 部署静态页面
            领券
            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档