我在搞一个小项目,现学现卖,基于 flask 写的,但是感觉做法很不专业,应该怎样提高效率呢? 现在的做法是: ssh 登录服务器, nano 打开一个 py 文件,敲代码,保存退出, flask 运行代码,打开网页观察,出错之后重复以上步骤修改…… 感觉很不对!
1
HypoChen 2016-08-12 10:58:00 +08:00
你是问 flask 怎么用还是怎么开发- -
最简单的就是用 ide 比如 pycharm ,然后本地 debug ,本地搞得差不多再发布 不过话说少年你很有线上 debug 的潜质啊 |
2
wbolor 2016-08-12 11:04:43 +08:00
简单点就使用 git , 本地在一个分支开发, 线上 master 分支,部署的时候拉 master 分支代码就好了。。。
|
3
yh7gdiaYW 2016-08-12 11:05:57 +08:00
推荐先本地用 pycharm ,自带 flask 支持(比如进入 templates 的 html 页可以提示你传进来的变量)。然后 push 到 git 上,例如 github&coding 。最后 ssh 到你的服务器里 checkout&pull
|
4
yh7gdiaYW 2016-08-12 11:07:46 +08:00
(不过我更喜欢本地写完后, xftp 直接复制过去)
|
5
Em5O7B1JGfjQnBry 2016-08-12 11:07:55 +08:00 via Android
先本地开发,觉得可行之后,然后发布上服务器,另,学学 vim/Emacs ,在服务器端其实挺方便的
|
7
Kilerd 2016-08-12 11:19:43 +08:00
兄弟,你的姿势很优雅。
讲道理,你的开发姿势完全错了吧。 首先你要有一个编辑器 /ide 。 本地用 virtualenv 隔离 python 包(可有可无,建议用上) 本地创建 flask 工程。 用 `app.run(debug=True)` 启动内置调试服务器(当你修改 py 文件,工程会自动重新加载。) 在本地 修改 /编写 /调试 好项目之后, 再推送到服务器上去 推送方式 git / ftp / 手动复制 随便选。 服务器部署的话,可以用上 docker. 不会的话可以直接用 nginx + flask + gunicorn |
8
troywinter 2016-08-12 11:42:17 +08:00
在服务器上开发的话,多开几个 ssh session 就行了,这边改代码保存,那边运行,不用这么麻烦的来回切换。
|
9
cxh116 2016-08-12 11:48:18 +08:00
你再只需要一个 tmux 就可以了
|
10
zhuangzhuang1988 2016-08-12 12:21:36 +08:00
服务器上开发
大哥, 你牛.. |
11
g0thic 2016-08-12 12:25:44 +08:00
大兄弟你是运维出身的吧
|
12
akring 2016-08-12 12:37:56 +08:00
搭车同问 Scrapy 爬虫如何部署到 VPS 上?
|
13
vinan143 2016-08-12 12:48:21 +08:00
服务器上还用 nano 的都是高手中的高手
|
14
masterzh01 2016-08-12 13:02:57 +08:00
vim + git
|
15
SlipStupig 2016-08-12 13:30:26 +08:00
@akring web hook+corntab
|
16
akring 2016-08-12 13:31:47 +08:00
@SlipStupig 多谢!
|
17
alittletrain 2016-08-12 13:36:13 +08:00
pycharm 可以直接在远程服务器上获取 /拉取文件, 你修改后可以自动上传到服务器上,注意(这是非 GIT 的方式),不过好在 pycharm 在本地有历史记录。
同理 phpstorm |
18
guyskk 2016-08-12 13:40:29 +08:00
7 楼正解
|
19
likuku 2016-08-12 13:52:16 +08:00
nano 。。。第一次登录服务器就是卸载 nano
|
21
wbt 2016-08-12 14:01:35 +08:00
一般不是在本地开发然后部署到远程么?直接在远程开发不便于调试以及多人协作。
|
22
lavande OP 多谢大家!等下我来搞个 git ,再搞个 IDE ,不过我之前没说清楚,现在在主贴更新了,就是微信公众平台的开发……特别矛盾,似乎没法在本地搞
|
23
lgpqdwjh 2016-08-12 14:45:55 +08:00
首先, 我不管你怎么管理代码
开发微信? 把域名解析到公网 对的, 微信需要验证域名的所有权, 你解析完后,公网服务器把流量转发到内网你的机器上? 能理解吗? 代理.. OK, 这个时候你该整个 sublime 了 它能帮助你比较搞笑的开发, 当然 pycharm 也是个好选择.. 好的. 差不多了. |
24
Allianzcortex 2016-08-12 14:46:29 +08:00
|
25
lgpqdwjh 2016-08-12 14:46:42 +08:00 1
啪啪打脸了 不是搞笑 是高效>..
|
26
lxy 2016-08-12 14:53:42 +08:00
搞个 git 私有仓库,开个 dev 分支,本地开发测试完成一个功能就推送到远程 master 分支。服务器拉取 master 。
部署 nginx+gunicorn+gevent+virtualenv+supervisor 。 本地模拟测试的话,有很多测试提交工具,比如 fiddler ,或者直接用 requests 库手写也可以。 |
27
MARCH0 2016-08-12 14:54:10 +08:00
我用 winscp+sublimetext
|
29
ooo000 2016-08-12 16:02:29 +08:00
你在做这个项目吗?[基于 Flask 及爬虫实现微信“讲笑话”机器人]( https://zhuanlan.zhihu.com/p/21921164)
|
30
tagtag 2016-08-12 16:28:55 +08:00
坐着开发,能站得住也行
|
31
Losses 2016-08-12 16:43:24 +08:00
又开始折腾了?这次搞的是什么 =w=?
|
34
armoni 2016-08-12 17:22:31 +08:00
微信公众号有个测试账号的,你可以直接把 IP 映射到你的个人电脑上调试开发
|
36
nisekoi 2016-08-12 17:49:24 +08:00 via iPhone
QQ 浏览器有个扩展,配合官方调试工具可以本地开发
|
37
xq5he 2016-08-12 17:51:40 +08:00
你可以试一下 localtunnel https://localtunnel.github.io/www/ 注册一个微信的测试账号,服务器地址填 localtunnel 生成的地址,这样你就可以在本地开发了。
|
38
huijian222 2016-08-12 21:03:43 +08:00
本地开发 然后推送到 CODING 或者 GITHUB 然后 设计 WEBHOOK 然后本地更新完后推送到代码托管平台 服务器自动 GIT PULL 齐活
|
39
flyingnn 2016-08-12 21:29:00 +08:00 via Android
ssh 到服务器,可以把本地端口映射到远程服务器,让外部访问本地端口
|
40
zacharyjia 2016-08-12 23:20:08 +08:00
话说 pycharm 也可以通过 sftp 来直接改线上代码吧
|
41
9hills 2016-08-12 23:22:03 +08:00
1.本地编辑,本地测试
2.debug=True |
42
limbo0 2016-08-12 23:22:13 +08:00
有个折衷办法, 可以开个 samba 服务 本地 ide 调试
|
43
iyaozhen 2016-08-12 23:32:19 +08:00 via Android
还是要本地开发,效率更高。你可以直接打开远程文件或者本地文件和远程同步,方案有很多。不过像公司内的话有跳板机,比较麻烦,一般是 rz 文件上去调试。
你说你是微信开发,这就需要你首先先把微信 XML 解析的方法调试封装好,然后业务逻辑本地开发、调试然后再线上验证。需要自己代码很好的模块化。实在不行的话也有很多本地模拟微信服务器发包的工具,或者远程服务器的请求转到本地。 值得欣慰的是楼主能感觉到不对 |
44
zhangkaizhao 2016-08-13 00:03:26 +08:00
嗨,你真的是在正常开发么?
请查阅 unittest/mock 先。 |
45
shajiquan 2016-08-13 00:07:35 +08:00
放弃。。。
|
46
wind3110991 2016-08-13 00:13:19 +08:00
flask 本地开发测试完,直接扔 docker 里配置 dockerfile ,打包好镜像然后部署到服务器上
|
47
GreatMartial 2016-08-13 09:13:01 +08:00 via Android
我用 sae 开发微信,都是在服务器上调试,好麻烦。
|
48
adoal 2016-08-14 00:40:35 +08:00
几个思路:
1. ssh 到服务器上现场开发其实没啥不专业的,但是用 nano 来些 python ……这事恐怕会很难受,建议还是用 vim 或 emacs ,然后好好配置一下,会方便很多的。 2. 可以 ssh 到服务器,利用 ssh 的 tunnel 做一下端口映射,把服务器上某个端口用 ssh -R 映射到本地电脑来做开发。 3. 可以用 PyCharm 之类的 IDE ,仍然是在 IDE 理配置 ssh 到服务器,但是 IDE 本机运行,做远程开发。 4. 印象中微信有在本机做开发的 SDK 啊…… |
50
lidalve 2017-04-06 10:10:53 +08:00
pycharm 企业版有 deployment 功能,直接本地开发上传文件的,研究下就 OK 了
|