《前后端分离》flask,html中引用外部脚本js文件,css文件

本文介绍了如何使用Python的Flask框架实现前后端分离,重点在于设置静态文件夹和模板文件夹,以及使用`render_template`和`request`进行数据交互。通过定义路由和视图函数,实现了HTML页面与Python脚本的通信,同时讲解了在HTML中引用外部JavaScript文件的方法。
摘要由CSDN通过智能技术生成

一、前提说明:

1.以三份文件实例进行介绍:
test.py
index.html
test.js
2.实现功能:
使用前后端分离方法在python文件中实现功能,在前端网页进行可视化
前后端可以传递数据
在html中引用外部脚本进行设计
3.运行环境:
pycharm
4.文件路径说明:
按此路径设置static和templates文件夹非常重要
js文件和css文件都要放在static文件夹中,html文件放在templates文件夹中,以保证在浏览器中可以找到引用文件以及前后端数据传输无误

├─MyProject
│ ├─static
│ │ ├─test.js
│ └─templates
│ │ ├─index.html
│ ├─test.py
(文件结构树:在对应文件夹下打开cmd,输入tree即可得到)

二、相关代码部分编写

1.test.py
先要pip install flask

//使用flask框架创建一个应用程序实例,其中:
// __name__ 是指当前 Python 模块的名称,用于 Flask 框架确定应用程序的根目录。
//static_folder 参数是指静态文件(如图像、CSS、JavaScript 等)所在的文件夹的名称。在本例中,静态文件存储在应用程序根目录下的 static 文件夹中。
//static_url_path 参数是指访问静态文件的 URL 前缀。在本例中,访问静态文件时需要在 URL 前面添加 /static。

from flask import Flask,jsonify,request,render_template
app = Flsk(__name,static_folder='static',static_url_path='/static')

reder_template的使用:

//下面是简单的视图函数编写示例
//由路由地址设置(route)和函数(def)构成,注意在前端使用该函数的返回值或者被向该函数发送数据,需要路由地址完全对应,例如这里的query的路由地址为'/query'
@app.route('/index',methods=['POST','GET'])
def index():
    # data = "hello world"
    return render_template('index.html')  //使用的气短前端代码的路径为index.html(使用相对路径即可,render_template()函数会自动从templates文件夹中获取该index.html文件
# 定义路由和视图函数
@app.route('/query', methods=['POST','GET'])
def query():
    # 获取前端发送的问句pip3 install pyltp
    question = request.form.get('question')  //从前端获取数据,question是数据的标签
    data = "hello word" 
    return jsonify(data)  //向前端返回数据,先将数据转换成json格式
    //可在前端html代码中编写 function query(){ }函数来接收该数据
  

2.javascript代码的引用
有两种方式:
1. 内部脚本:直接在html文件中编写
在html的body中编写前后用script包裹,参考示例:

<body>
	<scrip>
	编写你的Javascrip代码
	</scrip>
  </body>
3. 外部脚本:在html中引用javascript文件
4.在html文件的body中 使用以下语句添加js文件
<!-- 其中src填入你所引用的js文件的路径,这里使用静态方式引用,将引用文件放在static文件夹中,flask会自动找到该文件-->
<!-- 如果在前端浏览器找不到该test.js文件,请检查前面的flask设置是否有误以及文件路径和文件名是否有误。 -->

<script src="../static/test.js"></script>
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以通过以下步骤来实现使用 Flask 进行前后端分离上传文件: 1. 在前端页面添加一个文件上传的表单,例如: ```html <form method="post" enctype="multipart/form-data" id="upload-form"> <input type="file" name="file" id="file-input"> <button type="submit">上传</button> </form> ``` 2. 在前端页面编写 JavaScript 代码,使用 Fetch API 或 Axios 发送文件上传请求,例如: ```javascript const form = document.querySelector('#upload-form'); form.addEventListener('submit', (event) => { event.preventDefault(); const input = document.querySelector('#file-input'); const file = input.files[0]; const url = '/upload'; // 上传文件的后端 API URL const formData = new FormData(); formData.append('file', file); fetch(url, { method: 'POST', body: formData, }).then(response => response.json()) .then(data => { console.log(data); }) .catch(error => { console.error(error); }); }); ``` 3. 在 Flask 后端应用定义一个接收文件上传请求的路由,例如: ```python from flask import Flask, request, jsonify app = Flask(__name__) @app.route('/upload', methods=['POST']) def upload_file(): file = request.files['file'] # 对文件进行处理,例如保存到本地磁盘或者处理文件内容 return jsonify({'status': 'ok'}) ``` 在这个路由函数,可以通过 `request.files` 获取上传的文件对象,然后对文件进行处理。最后返回一个 JSON 格式的响应,告诉前端文件上传成功或者失败。 需要注意的是,在使用 Flask 进行文件上传时,需要设置表单的 `enctype` 属性为 `multipart/form-data`,这样才能上传二进制文件数据。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值