请问:初学者如何学习python 学哪个框架好

Python应该如何学习入门零基础学编程或提高办公效率,转行学习Python的伙伴越来越多对于小白来说如何入门学Python规划自己的学习路线尤为重要,网上有大量的学习资源、书籍、視频教程和博客讲解基础知识但是比较零散学习起来不成系统。


  Python全能语言社区庞大有太多的库和框架。Python应该如何学习入门小编建議选择好Python学习方向、清楚的知道就业方向、规划适合自己的Python学习路径接下来我们具体来看看


  1、选择好Python学习方向


  学习Python的目的不是為了解这门语言,而是为了要学会运用这门语言来解决问题但Python的应用方向太广了。在Python基础知识学完之后如果应用方向不同,要学习的東西也会大不同

  • 精通Scrapy, 了解多线程、多进程、网络通信编程相关知识


  2、明确Python就业方向

  自动化运维:自动化处理大量的运维任务

  数据分析师:快速开发快速验证,分析数据得到结果

  游戏开发者:一般是作为游戏脚本内嵌在游戏中

  自动化测试:编写为简单嘚实现脚本运用在Selenium/lr中,实现自动化

  网站开发:借助django,flask框架自己搭建网站。

  爬虫获取或处理大量信息:批量下载美剧、运行投资筞略、爬合适房源、系统管理员的脚本任务等

  人工智能:Python由于简便、库多、可读性强、可植入等优点,被作为人工智能的主要开发語言学Python是进入人工智能行业的切入点。


  3、规划Python学习路线


  当确定好方向后建好自己的学习路径。路径个系统性的逻辑主线每個部分需要完成的目标是什么,需要学习哪些知识点哪些知识是暂时不必要的。然后每学习一个部分就能够有一些实际的成果输出利鼡成果产出来形成正向刺激,激励后续的学习由浅入深学习Python基础、函数、面向对象、模块、异常处理和IO操作、访问MYSQL数据库等Python知识。

  Python基础内容包括:


  3.Python基础(变量、数据类型、字符串、运算符、列表和元组、条件判断、循环、字典和集合)
  4.函数(内置函数、自定義函数、变量作用域和命名空间)
  5.特性(迭代和列表生成式、迭代器和生成器、高阶函数、匿名函数和装饰器)
  6.面向对象(定义類、构造方法、封装、继承、多态、魔术方法)
  7.模块(自定义模块、Python标准库、第三方模块的使用如pyecharts)
  8.异常处理和IO操作

更多精彩內容可以关注公众号

}

本文面向:有Python基础刚接触web框架嘚Django初学者。

百度百科:一个开放源代码的Web框架由Python语言编写......

重点:一个大而全的框架,啥都替你考虑好了

具体介绍Django之前,必须先介绍WEB框架的概念

web框架: 别人已经设定好的一个web网站模板,你学习它的规则然后“填空”或“修改”成你自己需要的样子。

一般web框架的架构是這样的:

其它基于Python的web框架如tornado、flask、webpy都是在这个范围内进行增删裁剪的。例如Tornado用的是自己的异步非阻塞“wsgi”flask则只提供了最精简和基本的框架。Django直接使用WSGI并实现了大部分Web应用相关的功能。

我在文末左侧有为你准备Python flask的零基础系统学习课程点击:了解更多就可以看见了,希望夶家多多支持!

MVC百度百科:全名Model View Controller是模型(model)-视图(view)-控制器(controller)的缩写,一种软件工程典范用业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑

通俗解释:一种代码和文件嘚组织和管理形式!不要被缩写吓到了,这其实就是把不同类型的文件放到不同的目录下的一种方法然后取了个高大上的名字。当然咜带来的好处有很多,比如前后端分离松耦合等等,在使用中你慢慢体会就会逐渐明白它具体就不详细说明了。

  • 模型(model):定义数据库相關的内容一般放在models.py文件中。
  • 视图(view):定义HTML等静态网页文件相关也就是那些HTML、css、js等前端的东西。

*控制器(controller):定义业务逻辑相关就是你的主偠代码。

MTV: Django觉得MVC的字面意思很别扭不太符合它的理念,就给它改了一下view不再是HTML相关,而是主业务逻辑V了相当于控制器。HTML被放在Templates中称莋模板T,于是MVC就变成了MTV这其实就是一个文字游戏,和MVC本质上是一样的换了个名字和叫法而已,换汤不换药

目录分开,就必须有机制將他们在内里进行耦合在Django中,典型的业务流程如下图所示:

这里只介绍较为简单的pip3命令安装方式

安装完成后如下图所示:

(2)配置系統环境 成功安装Django后,在下图中的路径可找到django-admin.exe文件将它加入操作系统环境变量中。这样在以后的调用会比较方便

在linux等命令行界面下,使鼡django提供的命令和vim也能进行项目开发但是,这里推荐使用pycharm这个目前最好的Python开发IDE它功能强大,界面友好(下面所有的操作都在pycharm中进行。)

选择Django栏目输入项目名称,这里采用国际惯例的mysite选择Python解释器版本,点击create创建

Django将自动生成下面的目录结构:

与项目同名的目录中是配置文件,templates目录是HTML文件存放处也就是MTV中的T。manage.py是django项目管理文件

小编推荐一个学Python的学习q u n【 二二七 】   【四三五 】    【四五零 】,无论你是大牛还昰小白是想转行还是想入行都可以来了解一起进步一起学习!很多干货和技术资料分享!希望新手少走弯路

在每个Django项目中可以包含多个APP,相当于一个大型项目中的分系统、子模块、功能部件等等相互之间比较独立,但也可以有联系

所有的APP共享项目资源。

这样就创建了┅个叫做cmdb的APPdjango自动生成“cmdb”文件夹。

路由都在urls文件里它将浏览器输入的url映射到相应的业务处理逻辑。

简单的urls编写方法如下图:

5. 编写业务處理逻辑

业务处理逻辑都在views.py文件里

通过上面两个步骤,我们将index这个url指向了views里的index()函数它接收用户请求,并返回一个“hello world”字符串

现茬我们已经可以将web服务运行起来了。

但在pycharm中你可以这么干:

在上部工具栏中找到下面图示的图标。

OK确定之后点击绿色的三角,web服务就運行起来了

按图所示,自动跳转到浏览器程序界面显示的却是下图的404页面:

修改一下url,添加“/index”就一切ok了!

至此,一个最简单的django编寫的web服务就启动成功了

上面我们返回给用户浏览器的是什么?一个字符串!实际上这肯定不行通常我们都是将HTML文件返回给用户。

下面我们写这么一个index.html文件:

再修改一下views文件:

为了让django知道我们的HTML文件在哪里,需要修改settings文件的相应内容但默认情况下,它正好适用你无需修改。

接下来我们可以重新启动web服务。在浏览器刷新一下你会看到带有样式的“hello world”。

注:这里有个小技巧在多次频繁重启服务时,由于端口未释放的原因容易启动不了服务,修改一下端口就OK了

我们已经可以将HTML文件返还给用户了,但是还不够前端三大块,HTML、CSS、js還有各种插件它们齐全才是一个完整

的页面。在django中一般将静态文件放在static目录中。接下来在mysite中新建个static目录。

你的CSS,JS和各种插件都可以放置在这个目录里

为了让django找到这个目录,依然需要对settings进行配置:

同样在index.html文件中,可以引入js文件了:

重新启动web服务刷新浏览器,查看结果

9. 接收用户发送的数据

上面,我们将一个要素齐全的HTML文件返还给了用户浏览器但这还不够,因为web服务器和用户之间没有动态交互

下媔我们设计一个表单,让用户输入用户名和密码提交给index这个url,服务器将接收到这些数据

此时 ,重启web服务时会出错,因为django有一个跨站請求保护机制我们在index.html文件中加入一行{% csrf_token %}。

再次进入浏览器刷新页面:

输入点东西,然后我们在pycharm中可以看到相应的数据

我们收到了用户嘚数据,但返回给用户的依然是个静态页面通常我们会根据用户的数据,进行处理后在返回给用户

这时候,django采用自己的模板语言类姒jinja2,根据提供的数据替换掉HTML中的相应部分,详细语法入门后再深入学习

重启服务,刷新浏览器:

可以看到我们获得了用户实时输入嘚数据,并将它实时展示在了用户页面上这是个不错的交互过程。

流程走到这里django的MTV框架基本已经浮出水面了,只剩下最后的数据库部汾了

上面我们虽然和用户交互得很好,但并没有保存任何数据页面一旦关闭,或服务器重启一切都将回到原始状态。

使用数据库是毫无疑问的django通过自带的ORM框架操作数据库,并且自带轻量级的sqlite3数据库下面我们来看一看:

不注册它,你的数据库就不知道该给哪个app创建表

然后我们在settings中,配置数据库相关的参数如果使用自带的sqlite,不需要修改

这里我们创建了2个字段,分别保存用户的名字和密码

接下來要在pycharm的teminal中通过命令创建数据库的表了。有2条命令分别是:

重启web服务后,刷新浏览器页面之后和用户交互的数据都能保存到数据库中。任何时候都可以从数据库中读取数据展示到页面上。

至此一个要素齐全,主体框架展示清晰的Django项目完成了其实很简单是不是?

作為Python必学web框架的Django它的功能强大,内容全面但同时也意味着限制颇多,灵活性低可修改性差,这就是鱼和熊掌不可兼得了我们学习Django,其实就是学习一个软件要理解它的基本原理,把握它整体框架牢记一些基本规则,剩下的就是不断深入细节然后熟能生巧、经验多尐的问题了,不存在多高深的不可掌握技术

关于学习方法的建议:学习任何东西,不要直接扎入细节应该先了解它的外围知识,看看咜的整体架构再学习它的基本内容,然后才是深入学习打磨技巧!

全文完,有不对之处恳请指正觉得不错,就点赞支持一下

不止┅次在头条、微信、知乎有读者朋友跑过来问:看完了基础书,甚至看两遍了但自己写的时候还是没思路,我该怎么办

编程在我看来僦是一门手艺活,绝不是简单通过看书就能学会的跟学游泳、学车、学钢琴一个道理,没别的掌握了最基本的理论之后就是干,只有通过大量的练习、实战才能掌握编程这门技能之后再回过来头来继续深入理论

这个问题在知识星球也同样被问题,于是在那里我们设了烸日一题的专题每周会出三道题给大家,做完之后要求提交到 GitHub我会统一对代码进行 review。这些题一般都是出自于一些真实应用场景通过這种方式来提高编程水平。

下面这道题我们在星球中的第三题在你往下翻之前,不妨梳理下你的编程思路

统计一个文件中每个单词出現的次数,列出出现频率最多的5个单词

这道题在实际应用场景中使用比较广泛,记得哪里看到说李笑来就利用他的编程技能出版过一本褙单词的畅销书统计历年来四六级、托福考试中出现的高频词汇,学生根据词频来记单词这种方式深受大家喜欢。这就是一个把编程技能用来解决实际问题的典型场景

所以,哪怕你不是程序员如果能掌握编程技能的话,也能给你的工作带来极大的便利

另外,在做數据分析时那些词云效果本质上都是基于词频统计来控制字体的大小,如果你能熟练运用Python中的知识来解决问题的话那说明你真正入门Python叻。

本题主要考察以下几个方面的知识点:

在 Python 中读写文件可以使用内置函数open()而 open 函数在python2 和 python3 中有一定的区别,比如 Python 中可以指定读写文件的编碼格式而 Python 则不可以,为了同时兼容2和3我们通常会使用io模块下面的 open 函数,大家可以查文档搞清楚它们之间的区别培养主动学习能力和查资料的习惯。

另外一点是读写文件完成之后是需要关闭文件描述符的除了可以使用 try...except...finally的语法之后,我们还可以使用更优雅的 with … as 的语法来洎动关闭文件

2、如何对数据进行排序

sorted函数是一个使用频率很高的内置函数,它的用法也很强大因为它可以通过指定参数 key 来进行自定义排序,也就意味着你不仅可以对数字排序、对字母排序、还可以对列表、字典、自定义的对象进行排序你只需要要告诉 sorted 函数的排序规则昰什么,比如一个people对象我既可以根据年龄排序也可以根据身高体重来排序,所以这个函数时非常灵活的另外,对于列表对象有自带的 sort 方法如果能区分清楚 list.sort 与 sorted 之间区别那说明你已经能灵活运用了。

刚说了sorted函数可以指定一个参数来控制排序的规则这个参数可以是一个函數,这种场景往往匿名函数就是我们常说的lambda函数显得很应景。

做词频统计用字典无疑是最合适的数据类型,单词作为字典的key 单词出現的次数作为字典的 value,很方便地就记录好了每个单词的频率字典很像我们的电话本,每个名字关联一个电话号码另外,字典最大的特點就是它的查询速度会非常快理想情况下时间复杂度为O(1),我是说理想情况

处理文本、字符串,正则表达式简直是神器无论是做数据爬虫还是表单验证使用非常广泛,当然正则表达式并不是 Python 特有的东西,所有编程语言都支持我们除了学习正则表达式的基本规则之外僦是Python中的re模块提供的各种函数了,只有熟悉了API 我们才能运用到实际场景中去

以上5点,每个点都可以整理出一篇文章出来

分析完之后我們实现起来其实是非常快的。所以我们在拿到一个需求的时候首先肯定是把需求弄清楚,想想大概可以用哪些技术来实现随后才是动掱写代码,其实我们在工作上真正写代码的时间还不到一半。

当然实现方法不是唯一的。比如Python模块本身就提供了一个collections.Counter的类它继承自dict類,就是用于做统计的细心的你可能发现了,我实现的这个Counter和collections下面那个Counter很像其实这就是造轮子,造轮子可以锻炼我们的编程思维当嘫在工作上有现成的东西就没必要自己造轮子了,除非你有信心做得更好你也可以思考假如Python没有提供Counter这个工具,你该怎么做

另外,该模块还提供一个有序的字典对象 OrderedDict使用它可以免去我们手动排序的操作。对于上面提及的知识点你是否都了然于心了如果回答是的话,恭喜你我想你应该掌握差不多了,进阶吧如果你还有很多不清楚的地方,那么需要你更多的总结、练习

}

Python到底学什么新手应该注重哪些方面的技术?今天我们就来具体分析一下

写网络爬虫:Python写爬虫很简单,库很健全

科学计算:参加数学建模大赛完全可以替代r语言和MATLAB

数據挖掘:机器学习:Python的机器学习包很多

自动化运维:做系统部署,日常维护的脚本

看到Python的功能强大了吧现在工作需要的一些网络数据抓取,我都用Python处理了对于一个小白来说学习Python要注意些什么,哪些是重点如果自学Python找一份开发的工作,重点又该是什么



下面我们就来具體分析一下。

学Python到底学什么?1)如果学Python是想了解编程语言做一些实用小工具来提高效率,那学习的主要内容应该是Python的网络访问(urllib, urllib2, requests)爬虫相关的库,正则表达式, BeautifulSoupXPath,Excel数据库MySQLdb模块等,了解html网页

这些知识熟练应用,从网络上抓取数据再进行分析处理,完全没有问题

2)如果你想学习Python语言找一份开发的工作,那看企业的岗位中有哪些要求

  • 84个Python开发岗位是要求Web开发(后端开发)占43.3%,其中81个岗位明确需要django
  • 26个崗位对PHP有要求占13%
  • 运维岗位4个,测试岗位3个
  • 高级工程师岗位是26个占13%
  • 工作经验一般要求2年,一些岗位明确要求Python经验2年以上
  • 爬虫、数据分析相关的岗位17个,占8.7%

结论:1.Python语言作为工作中效率提升的工具非常好用的。

2.如果没有编程语言基础想学习Python后从事开发,要求偏高重点偠放在Web学习,框架(Flask, Django)学习上html, js 是基本。同时要打好Linux基础

}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信