在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
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页,带书签目录,文字能够复制粘贴;配套源代码; Flask大型教程项目:http://www.pythondoc.com/flask-mega-tutorial/index.html#
后续会更新一到两篇进行介绍其使用方法和相关代码。 |
请发表评论