python自学第一单元总结

这个第一单元是我自己划分的。

因为我之前连linux命令、如何装linux都很不熟悉。

多数都是拿来主义,直接买服务器或者VPS,人家都配好系统了。

然后按照项目说明一步一步走,上项目,所以总觉得有瓶颈。

这次狠下心来学习,还是很有收获的。

我的第一单元指的是,从硬件开始,做系统,做虚拟环境,做LINUX系统,做运行环境,测试技术,跑demo程序,实现自己的想法。最重要的是,理解这些事情为什么这么做。

目前的情况:

1、本地台式机win10系统,VMware装centos7,配好防火墙和网络。

这一步,相当于买来的装好系统的VPS。

2、virtualenv 虚拟2个python环境,

(1)环境1,python 3 , 装 djanjo原版,gunicorn 代替 uwsgi,正常跑起来。

django,研究了urls.py 和view.py,明白了M、T、V的机制,知道去哪改。

(2)环境2,python 2,直接pip mezzanine, gunicorn 代替 uwsgi,正常跑起来,supervisor 进行监控。

测试了mezzanine的功能。

3、在两个virtualenv的虚拟环境外,nginx,分别监听2个虚拟环境,绑定2个域名go.com和to.com,正常访问,当然是修改本地hosts文件实现的。。。这2个域名有一个就可以轻松生活了。 实际上,每个虚拟环境内,也可以建无数个django实例,绑定无数域名的。突然想起一个问题,如何实现djanjo的泛解析?思考了一下,其实是nginx的泛解析,不难办。

4、数据库用的是Postgresql。需要多个数据库,直接配就可以。又想到一个问题,Postgresql数据库如何备份?http://blog.csdn.net/licheng6302/article/details/7567523

4、局域网内FTP文件,ssh访问centos7,修改和上传文件。顺带学了下最浅显的markdown写法。还是要实现ftp,不然将来没法多人操作。http://www.centoscn.com/CentosServer/ftp/2015/0502/5335.html

http://www.cnblogs.com/zhi-leaf/p/5983550.html

5、搜集了django的学习资料,和现有的资源。同样搜集了一些python的资源。

6、完成这些,可以做什么?

(1)买个VPS,配置下,可以做多个网站,给多个企业做多个网站,绑定多个域名。

(2)django和Postgresql可以一对多,一对一,或者多对多。有些django可以没有前台,只管后台抓数据,或者做发邮件之类的活就可以。

(3)什么好处?性能更强,能实现更多想法;更充分利用资源,省钱。什么缺点?管理只能自己来了,除非有更好的办法。

6、接下来,学习django,两个途径:快速学习数据库操作,直奔主题,做自己想实现的功能;系统地跟着找到的资源用一个月的时间学通djanjo。两个途径,待定。

7、另外,原定的docker还未尝试,怕一次消化不了。

后续的任务队列和worker部分,还未尝试,等用到的时候再说吧。

 

 

 

Python开发基础准备之Postgres

PostgreSQL学习手册(函数和操作符<一>)

http://www.cnblogs.com/stephen-liu74/archive/2012/05/02/2294071.html

完整的学习手册:

http://www.cnblogs.com/stephen-liu74/category/343171.html

在Django上设置postgresql和运行代码

http://blog.csdn.net/GeekLeee/article/details/52780106

http://blog.csdn.net/p106786860/article/details/49877483

http://blog.csdn.net/kongxx/article/details/48622673

如何使用 Docker 组件开发 Django 项目?

http://www.jianshu.com/p/8dbb33914b01

 

Python开发基础准备之Python/Django

Python是种语言,Django是它的开发框架,比较重的框架。

那么一共有哪些框架?

求推荐简单好用的 app 后台框架,最好是 pythonhttps://www.v2ex.com/t/163541

ivenvd2015-01-20 16:22:10 +08:00

@yueyoum 很想知道你是拿什么跟 Django 比才得出这结论的…… LZ 的需求的重点显然是快速上手开发小型项目,而不是在谈哪个功能全,不知道你又是扯性能、又是扯数据库的干嘛……

就上手而言,Django 需要:
1. 读 Django 那个晦涩的文档。
2. pip install django
3. django-admin.py startproject mysite
4. 读文档修改各种配置文件。
5. 读文档开始编程。
6. python manage.py runserver

而随便一个轻量级框架,比如 Flask,只需要:
1. pip install flask
2. 读文档开始编程。
3. ./app.py

结论无需多说。

另外个人推荐 padrino。Flask 可用的积木太少了,质量也一般般。而 padrino 则和 Rails 共享大量的 gem,可轻可重,用来做 API Server 很不错。

接着搜索了一下Padrino ,得到
Padrino 博客开发示例
好像不简单,那么搜下flask,得到

超小团队选择django还是flask? – 知乎https://www.zhihu.com/question/33538127

里边有句话:推荐Django。Flask很多插件都有大坑。Django相比提供了整套的解决方案,而且坑相比不是那么大。
也有欢呼的:

 

 

突然闯进技术的家园

偶然逛到一个湾区日报的博客,看到了一堆不懂的名词,感觉遇到一扇门。

看下面一段话

前面介绍到我用 Slack机器人对话。这机器人就是 Hubot -- 它解析我发出的命令,然后调用我在 Django App 里提供的 REST api 发布文章;当文章的状态由 pending 变成 published后,将触发一些 Celery tasks;每个 task 负责一个渠道的发布任务,比如一个task发布到微博,一个task发布到reddit等。

以及:

所有网站基本都能简化成这个架构:Web App,Datastore,Async Worker,Task Queue,以及 Scheduler。其中,Web App就是跑网站代码接受用户的访问请求,所有耗时间的task(比如发邮件,发微博,数据统计等)都扔到Task Queue上,然后Async Worker从Task Queue抓task过来离线处理;而Scheduler就是定时跑程序,很多网站直接用的Cron。

对于湾区日报,Web App就是Django App,用uwsgi跑N个进程,用supervisord管理进程,前面挂一个 nginx 当 load balancer。Database用的是PostgresRedis  —  其中,大部分需要永久存储的数据都在Postgres中,而Redis存的是文章的访问数与一些只需保留一两天的数据。Task Queue是用RabbitMQ。Scheduler用的是Celery Beat。而Async Worker是Celery。下图是湾区日报后台简单的架构:

还有:

我用家里的 iMac 写代码。Mac OS X 下运行虚拟机 Vagrant + VirtualBox。虚拟机里跑的是 Ubuntu,与 production 里用的操作系统一样。然后通过 Vagrant 的 synced folders 在 Mac OS X 与虚拟机之间共享代码的文件夹。在 Mac OS X 上用 PyCharm 写代码,利用 PyCharm 里的 Vagrant 的支持,在虚拟机里跑服务器。

这才是真正的python程序员

相比之下,用现成的CMS建个网站,修修改改点小代码,感觉很弱啊。

又搜了搜,PHP也有类似的框架,Swoole、zanworkerman等,都可以解决。