资讯专栏INFORMATION COLUMN

一、python服务端入门:读取文件并返回给前端

Dean / 2906人阅读

摘要:读取文件内容并通过接口给前端使用常规的开发是在服务器端根据动态生成这里还是采取前后端分离思想,通过读取文件数据,通过接口给前端调用。之所以采取读取文档并返回给前端而不是其他语言主要是因为比较火热,应用面广。

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文件的方式是vue-markdown-loader
对此方式感兴趣可以直接采用这种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目录下

源码:https://github.com/idongchen/docs/blob/master/example/getfile.py

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/42151.html

相关文章

  • python服务入门读取文件返回

    摘要:读取文件内容并通过接口给前端使用常规的开发是在服务器端根据动态生成这里还是采取前后端分离思想,通过读取文件数据,通过接口给前端调用。之所以采取读取文档并返回给前端而不是其他语言主要是因为比较火热,应用面广。 python读取文件内容并通过接口给前端使用 常规的python web开发是在服务器端根据url动态生成html这里还是采取前后端分离思想,通过python读取文件数据,通过接口...

    xiangchaobin 评论0 收藏0
  • python服务入门读取文件返回

    摘要:读取文件内容并通过接口给前端使用常规的开发是在服务器端根据动态生成这里还是采取前后端分离思想,通过读取文件数据,通过接口给前端调用。之所以采取读取文档并返回给前端而不是其他语言主要是因为比较火热,应用面广。 python读取文件内容并通过接口给前端使用 常规的python web开发是在服务器端根据url动态生成html这里还是采取前后端分离思想,通过python读取文件数据,通过接口...

    anquan 评论0 收藏0
  • 大话爬虫的实践技巧

    摘要:图意淫爬虫与反爬虫间的对决数据的重要性如今已然是大数据时代,数据正在驱动着业务开发,驱动着运营手段,有了数据的支撑可以对用户进行用户画像,个性化定制,数据可以指明方案设计和决策优化方向,所以互联网产品的开发都是离不开对数据的收集和分析,数 showImg(https://segmentfault.com/img/remote/1460000013428119?w=539&h=337)...

    沈俭 评论0 收藏0
  • SegmentFault 技术周刊 Vol.40 - 2018,来学习门新的编程语言吧!

    摘要:入门,第一个这是一门很新的语言,年前后正式公布,算起来是比较年轻的编程语言了,更重要的是它是面向程序员的函数式编程语言,它的代码运行在之上。它通过编辑类工具,带来了先进的编辑体验,增强了语言服务。 showImg(https://segmentfault.com/img/bV1xdq?w=900&h=385); 新的一年不知不觉已经到来了,总结过去的 2017,相信小伙们一定有很多收获...

    caspar 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<