博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一、python服务端入门:读取文件并返回给前端
阅读量:6094 次
发布时间:2019-06-20

本文共 2045 字,大约阅读时间需要 6 分钟。

python读取文件内容并通过接口给前端使用

常规的python web开发是在服务器端根据url动态生成
html
这里还是采取前后端分离思想,通过python读取文件数据,通过接口给前端调用。

注意事项

  • 确保python版本为3.x

框架选型:

  • Django:全能型Web框架;
  • Flask:轻量实用的Web框架;
  • web.py:一个小巧的Web框架;
  • Bottle:和Flask类似的Web框架;
  • Tornado:Facebook的开源异步Web框架。

只是实现一个小工具实用Flask就好

安装方式

pip install flask

初衷和思路

博客的文章管理方式大体分两种:静态html、动态加载。动态加载文章一般通过数据库存取,为了简化此过程,就想通过直接加载文件的方式。

markdown语法在写文章上很受开发者青睐,因此直接加载md文件就比较便于维护。
现行方案中
github采用的后端加载方式,已有的一种前端直接加载md文件的方式是
对此方式感兴趣可以直接采用这种loader方式,以下内容就可以忽略了。
之所以采取python读取文档并返回给前端而不是其他语言主要是因为python比较火热,应用面广。作为一枚小前端果断选择python来研究学习,这个小项目也是用来练练手。
注:md文章放在项目./static下就好

  • 1.注册接口,绑定处理函数
  • 2.接收前端传递的参数(文件名)
  • 3.读取文件,返回到前端

代码如下:

python代码就是简洁

@app.route('/getdata/md', methods=['post'])def ajax_test_add():    params = request.get_json()    childPath = params.get('title')    if(params.get('title') == None):        print('未传title字段!')        return json.dumps({'resCode':'4001','msg':'参数错误title为必传'})    else:        path = './static' + childPath + '.md'        try:            f_name = open(path, 'r', encoding='UTF-8').read()            print(f_name)            # 成功获取到md文件内容啦            return json.dumps({'content':f_name,'resCode':2000})        except OSError as reason:            print('读取文件出错了T_T')            print('出错原因是%s' % str(reason))        return json.dumps({'err': str(reason),'resCode':5000})

问题总结

  • 跨域问题

from flask_cors import CORS

CORS(app, resources=r'/*')
r'/*' 是通配符,让本服务器所有的URL 都允许跨域请求

  • 主机端口号设置

app.run(host = '0.0.0.0', port = 9001, debug = True)

前端代码

在点击文章标题是,获取data-id属性的值,该值即为传给后端的文件名。

前端调用的接口地址:http://hostname:9001/getdata/md
请求方式:POST
必传参数:{"title": 文章名(不用加后缀)},该文章要放在python项目的./static目录下

源码:

转载地址:http://xcwza.baihongyu.com/

你可能感兴趣的文章
在mac OS10.10下安装 cocoapods遇到的一些问题
查看>>
angularjs表达式中的HTML内容,如何不转义,直接表现为html元素
查看>>
css技巧
查看>>
Tyvj 1728 普通平衡树
查看>>
[Usaco2015 dec]Max Flow
查看>>
javascript性能优化
查看>>
多路归并排序之败者树
查看>>
java连接MySql数据库
查看>>
转:Vue keep-alive实践总结
查看>>
android studio修改新项目package名称
查看>>
深入python的set和dict
查看>>
C++ 11 lambda
查看>>
Hadoop2.5.0 搭建实录
查看>>
实验吧 recursive write up
查看>>
High-speed Charting Control--MFC绘制图表(折线图、饼图、柱形图)控件
查看>>
go test命令參数问题
查看>>
linux 搜索文本
查看>>
超实用Mac软件分享(二)
查看>>
Android JSON数据解析
查看>>
DEV实现日期时间效果
查看>>