博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python两天之旅
阅读量:5746 次
发布时间:2019-06-18

本文共 2596 字,大约阅读时间需要 8 分钟。

最近工作上有额外的抓取数据和发送数据的需求,没有业务处理,后期可能需要对接其他平台的数据,不大想用java去做,正好想学点其他东西,又听闻python在这方面很有优势,百闻不如一见,就想去学学看,于是前后大概花了两天时间来学习。果然!用着很爽,是用java从来没有的体验,我将学习步骤简单记下,纯粹是新手自学,不当之处还望高手指出,有好用、简单的框架希望大家也推荐下。

1. 了解语法

初学一门语言,可以先熟悉下该语言的语法,我先上官网去看了下初学教程,然后上jetbrains上下载Python IDEA,python有关的IDEA有好几个,其中有个PyCharm Edu,是给初学python者使用的,它里面是什么呢?是50道写好的测试题,我大概用了2小时将它做完,仔细看完了每题介绍的语法,对于基本语法差不多就有些了解了。

2. 接下来怎么学?

前段时间看了《我编程,我快乐》——程序员的修炼之道,里面作者讲了他对学习一门新语言的看法,寻找良师对于学习是很有帮助的,作者讲到在爵士音乐界,人们普遍会从师,当别人问他你的老师是谁的时候,他们一般都会回答是某某,但如果你问一个编程人员他们的老师是谁的时候,他们会回头一脸茫然的反问你“是谁?”。作为编程人员找老师确实有些难。。但上github上找优秀框架却是不难的,于是我上去搜了下python相关的项目。

3. scrapy与requests

从他们各自的框架介绍来看,scrapy更专注于从网站提取数据,requests如其名,是个很好用的HTTP库。而我当前的需求是做一个定时调用api获取数据,再通过api发送数据的东西,所以我选择使用requests。 简单几行代码就可以搞定请求,觉得很爽:

import requests# 获取天气r = requests.get('http://www.weather.com.cn/data/sk/101020100.html')print(r.status_code)复制代码

官方网站:http://docs.python-requests.org/en/master/

4. pip与pipenv

pipenv的好处是创建一个完全独立的,干净的环境,也即在它里面你可以做任何事情,但不会影响其他的python项目,(读requests的官方文档,它建议使用pipenv而不用pip),实际上作为初学者来说有没必要立即使用pipenv?我觉得还是先用用pip会比较好点,等实际有需要独立环境时再使用pipenv,初学时不太会有多高的要求,以实用方便为主(我再看了其他几个star比较高的项目,没有要求用pipenv)。

5. peewee

搞定了数据的请求之后,需要将数据存到数据库,这里我用的是mysql,再上github上搜索python mysql相关的项目,最终决定用peewee,没有太多的对比多个框架,简单来讲就是觉得好用,而且它有自带的generator——pwiz,可以通过一行命令直接生成指定数据库的所有表对应的models,增删改查也很简单。

这里推荐入门看一篇简单的文章 http://www.jianshu.com/p/29d821774474 作者还顺带写了例子,可以很好的参考,更全的语法则可以参考官方文档:http://docs.peewee-orm.com/en/latest/peewee/querying.html#query-operators

6. 定时器

好了,到此数据获取,发送,存储都有了着落,目的差不多就快达到了,最后再设一个定时器,定时去执行任务就好了,这里用了schedule,用起来也很简单,几行代码:

import scheduleimport timedef job():    print("I'm working...")schedule.every(10).minutes.do(job)schedule.every().hour.do(job)schedule.every().day.at("10:30").do(job)schedule.every().monday.do(job)schedule.every().wednesday.at("13:15").do(job)while True:    schedule.run_pending()    time.sleep(1)复制代码

可以根据实际需求选用调用哪种方式

官方网站:https://pypi.python.org/pypi/schedule

感言

通过这两天的学习,对于python只能是勉强能用,但我已很满足,后期还会用python去做点东西,这是我继看完《我编程,我快乐》——程序员的修炼之道后认真去实践的第一门语言。感觉以前一直为一种想法所桎梏,是不是一定要先精通一门语言才去学其他语言的问题,后来认识到想要精通谈何容易,谁又敢轻言自己精通某某语言,怕是会分分钟被打脸,有朋友说,某些简历筛选的人看到简历上写精通会直接淘汰掉,总之精通不是容易的事。所以既然很难精通,也不知道何时能精通,那么这层先后顺序就没什么必要了,通过去学习不同的语言,也许还能触类旁通,有不一样的收获。

学习新的东西是否有必要去啃完该方面的经典大部头?这个是我以前的固有方法,所以学习新东西很难开头,因为没有什么利益,也没人带领,也不那么有趣,几乎不可能啃得下来。就像我读历史总想从《春秋》《史记》开始读起,讲真,真的难啃,最近才开始读《中国通史》,这次我不再看得非常仔细,结果很快就读完了以前很久都读不完的内容,在读书的质量方面,我发现比之十分认真的去读也没有多大差别,于是认真反思了自己之前读书的方式,发现,读书不一定一开始就要努力去记住所有,也许可以先了解一个大概,再根据兴趣爱好做深入的了解,一开始就想深入了解往往会打击自己的积极性。

若是此后再发现这种方法有问题,那就再寻找合适的方法。有许多好用的方法,但并不一定适合所有人,但我们不能以此为借口而去否定我们不知道的方法,有的方法还是值得一试的,我们快点去体验就行,觉得好,就更多的去了解、实践,觉得不好,就再去寻找,总结。

学而时习之,温故而知新,三省吾身,全在自身去体察;日新,月新,也全在自我去改进。

转载地址:http://pnazx.baihongyu.com/

你可能感兴趣的文章
【Android UI设计与开发】9:滑动菜单栏(一)开源项目SlidingMenu的使用和示例
查看>>
第十章——维护索引(7)——使用索引视图提高性能
查看>>
项目实践中--Git服务器的搭建与使用指南(转)
查看>>
Eclipse远程调试weblogic
查看>>
Android GreenDao with Android Studio IDE
查看>>
天气窗件展示 -一个HTML5 地理位置应用的例子
查看>>
[数分提高]2014-2015-2第2教学周第2次课
查看>>
LeetCode - Excel Sheet Column Number
查看>>
OS Kernel Parameter.semopm
查看>>
解决SpringMVC的@ResponseBody返回中文乱码
查看>>
java设计模式2--抽象工厂模式(Abstract Factory)
查看>>
Nginx 用log_format设置日志格式
查看>>
选择比能力更重要,我们怎么来选择加入哪个创业项目呢?
查看>>
使用maven创建一个例子
查看>>
Oracle---number数据类型
查看>>
lr场景运行报错的解决方法
查看>>
如何实现4分频?
查看>>
Cordova4.0 系列 -- 基本环境搭建(1)
查看>>
muduo网络图书馆评测
查看>>
VC获得window操作系统版本号, 获取操作系统位数
查看>>