三、基于Flask的Python和C#交互(前篇)

  Flask是一个微型的 Python 开发的 Web 框架,应用性强,是我在项目过程中调研到的一种交互性强,稳定性高的Python与C#的交互方式。

  之前介绍过 “ C#调用Python的使用总结 ”,总体上使用没什么大问题,但是在应用上实在是算不上比较智能的交互。他们俩之间(C#和Python)之间的沟通方式,打个比方就像是早期寄快递。我(C#)在 寄快递(发命令),把想要寄的东西打包后寄出去(通过Process引用对应的python文件和输入参数),然后就没然后了。我需要自己(C#)频繁的去打电话查询快递到哪了(异步获取订阅事件,获取输出流进行分析),快递有没有出事(是否输出异常信息),这些都是得我去查(C#开线程去跟踪输出流信息)。不够智能,整体使用非常不灵活,Python并不能够直接的传输,关联到C#应用层。你可以设想一下,如果C#应用程序出现问题或者异常关闭,Python这边其实是不影响的,这个就很不安全了。你可以想象,快递一出概不受理的感觉,寄出去就讨不回来的结果。同理来说Python那边也是一样,双方的关系其实只有最开始的寄快递的时候的交接,后续客户只能希望送快递的人靠谱。这个就很迷了,在之前没找到更好的方法我也只能认了。

  随后的应用测试中,发现关闭Python对应脚本也是很不方便,只能直接关断对应的Python程序运行。程序简单还好说,程序复杂起来就影响很大了。毕竟测试稳定性和安全性都得不到很好的保证,这个就是个大问题了,所以就只能找其他方式解决了。

  在调研的情况下接触到FLask。了解其创立的背景和使用方式,建立服务器的方法是一种很好的思路应用,通过一系列的尝试测试,惊喜的发现其能够完美解决上面提到的问题。

  主要也就是通过Flask建立服务器,还是用寄快递为例。服务器就相当于快递公司,你通过给快递公司寄快递(C#给FLask服务器发命令),快递公司会根据快递类型(路由)进行路径选择(执行方法),派人去送往目的地(执行命令)。在整个送快递的过程,快递公司是一直在线的,你的快递没送完这个订单就不算完成,除非他返回给你结果(寄送成功或者寄送失败)。C#不需要开另外的线程去跟踪结果,只需要发一条命令一步到位。Python脚本和C#前端程序没有直接的对接,他们之间相当于多了一个中转站,中转站会对两边的数据都进行抓取,不论发送还是接收都是实时的。

  有兴趣的朋友可以先去看看Flask用户指南,对于简单的建立C#和Python的交互不需要涉及它太复杂的原理和应用。下面的链接是调用 擒贼先擒王 这位大佬的博客里的链接。

  From:http://docs.jinkan.org/docs/flask/quickstart.html

  Flask 用户指南:http://docs.jinkan.org/docs/flask/index.html

  w3cschool.cn 的 Flask 教程:https://www.w3cschool.cn/flask/

  《Flask Web开发:基于Python的Web应用开发实战》第2版中文PDF,324页,带书签目录,文字能够复制粘贴;配套源代码;
下载: https://pan.baidu.com/s/1qhCaPeX41vltmeI-XFVLIA    提取码: v9w5

  Flask大型教程项目:http://www.pythondoc.com/flask-mega-tutorial/index.html#

 

  后续会更新一到两篇进行介绍其使用方法和相关代码。

posted @ 2020-09-21 10:56  卢大鸽  阅读(1294)  评论(0编辑  收藏  举报