非程序员第一次写自己的Python程序, 请问怎样把一个python本地小工具改造成网站上的工具

2013-11-24 03:10:03 +08:00
 littlewey
背景:
陆陆续续自学了好几个月的Python了,之前也没掌握过任何一门语言. 今天终于写出来了自己想了好几个礼拜的小工具, 是文本处理的, 可以代替公司里我们team内部的一个机械化的工作, Team里同事都不是程序员, 没有Python环境, 加上我想学习下网络相关的东西, 我希望进一步可以把这个Python小工具做成在网页上的在线的工具.

我的做的小工具的input是三个文本文件, output是 print出来的结果.

现在:
我目前的思路是, 看看SAE文档, 着手开始做,不知道理论上有没有什么硬伤.

问题:
这种需求我猜是不需要Django那种框架实现的, 我的计算机/网络基础知识不多,需要学习哪些方面东西呢?

多谢大家拍砖, 指路!!!
4748 次点击
所在节点    Python
14 条回复
liuxurong
2013-11-24 03:55:52 +08:00
PHP + 一键环境包比较适合你这个。

Python 弯路多啊。
yakczh
2013-11-24 08:14:52 +08:00
python路上满地是坑,虐人无数,除非是有大量闲时间的可以折腾
如果要短平快用php
echo transform($_POST['input'])
muzuiget
2013-11-24 09:40:15 +08:00
我反而觉得 PHP 的坑比 Python 多得多了。

楼主,首先改进你的代码,把处理部分的函数的参数,接受 3 个文件名改为接受 3 个字符串,也就是把「从文件读取文本」的功能分离出来,在另外一个函数先处理好,因为对于网络来说,不是读文件,而是读网页表单数据,但是无论是从文件读取还是从网络读取,处理流程都是一样的,所以处理函数可以重用。

例如 handle(filename1, filename2, filename3) 改成 handle(text1, text2, text3)

可能你这部分已经做好了。

SAE 支持多个 Pyhton 的 web 框架,对于你这种小工具,选择微框架就行了。我推荐 Flask。不到 20 行代码就搞定了。

from flask import Flask, request
import my_module
app = Flask(__name__)

@app.route("/")
def hello():
text1 = request.args.get('input1')
text2 = request.args.get('input2')
text3 = request.args.get('input3')
return my_module.handle(text1, text2, text3)

if __name__ == "__main__":
app.run()

运行后这样访问 http://localhost:5000/?input1=111&input=222&input3=333
muzuiget
2013-11-24 09:42:25 +08:00
不小心提交了……缩进也被吞了。

三个 textN 参数就对应 111,222,333。如果文本量很大,改成 post 的方法, 用 textarea 来填数据,自行研究。用 post 的话,Flask 里改用 request.form.get('input1')
Livid
2013-11-24 10:01:07 +08:00
可以先学习一个简单的框架,然后把你的代码弄进去。

http://flask.pocoo.org/
bombless
2013-11-24 11:06:08 +08:00
我觉的你自己弄太花时间了。还不如找个信任的人把代码丢给他。
这种应该是小改一下就可以上线。然后你就会发现交互方面有诸多不如意的地方。
接下来就是漫长的修改过程。

如果真要认真负责搞起来,那就像楼上建议的,先好好学一个框架,然后可能在框架内再写一次
第二次肯定比第一次写起来快的多吧?唯一的问题是要小心第二系统综合症。
weakish
2013-11-24 17:57:42 +08:00
推荐一下 bottle,超容易上手的小框架。

我以前写的一个小应用可以当例子: https://gist.github.com/weakish/510960#file-stupidm_web-py
weakish
2013-11-24 21:08:36 +08:00
不好意思,刷屏了,不知道 gist 展开不认 `#file` 语法……
littlewey
2013-11-24 21:53:10 +08:00
@muzuiget Thanks! 不过 request下边好像没有 form.get 吧? 我后来用的是files 然后文件是read()成str再split了的:-)
littlewey
2013-11-24 21:56:03 +08:00
@bombless 哈哈, 其实是主要想学Python, 然后还能造福我们Team的工作, 昨天从中午弄到晚上两点多, 今天一整天感觉时间好快, 好充实哈哈!! 不过有mentor直接告诉我方向, 或者帮我基本弄起来架子确实能高效一些, 这就是自学跟在公司的区别吧TAT
littlewey
2013-11-24 21:59:33 +08:00
@weakish 扫了一眼, 您这个对我将非常有帮助, 我等部署完了sae上线了,再好好看看你的, 我弄的可山寨了, 比如我现在只会 return string, 就把结果弄成 list然后 变成string, 中间加行加 <br>, 头和尾加 html的头和尾... TAT
weakish
2013-11-25 20:51:01 +08:00
@littlewey 这里貌似没法引用gist中的单一文件。你看这个就好 `https://gist.github.com/weakish/510960#file-stupidm_web-py` (基于bottle框架)。 我是文科生,代码各种渣,不过这个服务比较简单,所以自我感觉写得还过的去。
weakish
2013-11-25 20:54:06 +08:00
擦,放在``中 gist 还会被展开…… 我的意思是这个 https://

gist.github.com/weakish/

510960#file-stupidm_web-py
Septembers
2015-06-10 05:15:17 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/90402

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX