❶ 应该怎样自学python
一. 确定一个练手的目标
如果手边没有现成的需求项目等着你去用python实现,那么最好先确定一个小目标,例如 搭建一个博客,一个站点等.
二. 分析所需知识技能
接下来我们需要分析下,针对这种web性质的项目,需要掌握的技能树
三. 开发所需的技能知识
1. 开发环境和开发工具
python下载
sublime Text 3
pycharm下载
2. python语法知识
我个人推荐廖雪峰老师的python教程,简单易上手,大概每个章节都看下,代码敲一遍
3. web框架
djangoh中文文档
web.py官方教程
Flask学习指南
tornado中文文档
4. ORM
MySQL教程
Mongodb教程
Redis教程
5. 代码托管
Git教程
SVN教程
免费的代码托管平台码云
6. 前端知识
html, css, js jquery,ajax
bootstrap中文网
vue.js官网
weex官网
7. 部署上线
(1) 域名和服务器购买, 及域名备案,域名解析等
(2) linux基础操作知识
(3) python虚拟环境和多版本共存
virtualenv介绍和配置
pyenv介绍和配置
(4) 负载均衡和进程守护
nginx服务器入门指南
supervisor守护进程
四. 写在最后
1. python自学之路漫长,需要持续的学习和总结,希望各位挺住!
2. 找一个pythoner一块交流学习,碰到问题能有所指点,事半功倍!
❷ 廖雪峰的官方网站有python后端开发相关知识吗
有。
廖雪峰,十年软件开发经验,业余产品经理,精通java/Python/Ruby/Scheme/Objective C等,对开源框架有深入研究,着有《Spring 2.0核心技术与最佳实践》一书。
Python是一种广泛使用的解释型、高级和通用的编程语言。Python由荷兰数学和计算机科学研究学会的Guido van Rossum创造,第一版发布于1991年,它是ABC语言的后继者,也可以视之为一种使用传统中缀表达式的LISP方言。
❸ 各位,python的ORM哪个更好一些
1、主要是开发快,语言简洁,没那么多技巧,所以读起来很清楚容易。
2、如果追求运行速度,可以用C/C++写python的mole,标准库里就有用C/C++写的东西,这个跟java的JNI类似。
3、大量现成的包,基本上需要的东西,Python都有。软件业、工业、研究领域,都有大量的工具。
4、强大的“胶水语言”。开发复杂的系统的时候,可能需要各种应用,而Python可以解决大部分问题。我开发“云算笔记”网站(yunsuan.org),主站使用Python+Tornado,ORM使用peewee,地图服务器使用TileStacke,科学计算部分,使用scipy,绘图,使用metaplot,这些都是Python的包。
❹ Python工程师怎么自学(学习路径)
IT行业,技术要比学历、年龄、从业经验更为重要,技术水平直接决定就业薪资,想要学好python,首先要先了解精通Python语言基础、Python web开发、Python爬虫、Python数据分析这四大方面。
零基础学习需要要从如下几个阶段入手:
阶段一:熟练掌握Python多线程并发编程技术,可以编写爬虫程序和语音识别软件
阶段二:熟练掌握Linux操作系统管理技术,可以搭建几乎所有Linux环境服务器
阶段三:掌握三大Python后端框架,解决一切前后端Web开发问题
阶段四:掌握三大Python后端框架,解决一切前后端Web开发问题
阶段五:Web框架之Tornado
阶段六:docker容器及服务发现
阶段七:掌握分布式多线程大型爬虫技术,能开发企业级爬虫程序
阶段八:成为Python数据挖掘分析师,进入人工智能领域,成为IT市场最前沿人才
❺ 简述python语言的概念
Python 是一门优雅而健壮的编程语言,它继承了传统编译语言的强大性和通用性,同时也借鉴了脚本语言和解释语言的易用性。
Python是由创始人贵铎·范·罗萨姆(Guido van Rossum)在阿姆斯特丹于1989年圣诞节期间,为了打发圣诞节的无趣,开发的一个新的解释型脚本语言。之所以选中Python(大蟒蛇的意思)作为该编程语言的名字,是因为他是BBC当时正在热播的喜剧连续剧“Monty Python”的爱好者。
Python被设计成是 “符合大脑思维习惯” 的,采用极简主义的设计理念,加以统一规范的交互模式。这使得Python易于学习、理解和记忆。Python 开发者的哲学是 “用一种方法,最好是只有一种方法来做一件事”。
Python是完全面向对象的编程语言,函数、模块、数字、字符串等内置类型都是对象。它的类支持多态、操作符重载、和多重继承等高级OOP概念,并且Python特有的简洁的语法和类型使得OOP十分易于使用。当然OOP只是Python的一个选择而已,就像C++一样,Python既支持面向对象编程,也支持面向过程编程的模式。
Python 的优点
1、软件质量高
2、开发速度快
3、功能强大
4、易于扩展
5、跨平台
Python 的开发方向和应用场景
Web网络开发:
Python提供丰富的模块支持sockets编程,多线程编程,能方便快速地开发网络服务程序。支持最新的XML技术,支持json语言,数据库编程,而且Python的ORM框架,使得操作数据库非常方便。
Python还有优秀的Django、Tornado、Flask等web开发框架,还用众多的开源插件的支持,足以适用各种不同的web开发需求。
自动化运维:
Python对操作系统服务的内置接口,使其成为编写可移植的维护操作系统的管理工具和部件的理想工具。Python程序可以搜索文件和目录树,可以运行其他程序,可以使用进程和线程并行处理。
网络爬虫:
在文本处理方面,python提供的re模块能支持正则表达式,还提供SGML,XML分析模块,许多程序员利用python进行XML程序的开发。
图形处理:
有PIL、Tkinter等图形库支持,能方便进行图形处理。 多媒体应用 ,Python的PyOpenGL模块封装了“OpenGL应用程序编程接口”,能进行二和三维图像处理。PyGame模块可用于编写游戏软件
Python版本
python有两个版本,python 2.X和python 3
❻ python中orm 框架有哪些
对多核多对多
04142434445
from sqlalchemy.ext.declarative import declarative_basefrom sqlalchemy import Column,Integer,String,ForeignKey,UniqueConstraint,Indexfrom sqlalchemy.orm import sessionmaker,relationshipfrom sqlalchemy import create_engineengine = create_engine("mysql+pymysql://root:[email protected]:3306/test",max_overflow=5)Base = declarative_base()#创建单表class Users(Base): __tablename__ = 'users' id = Column(Integer,primary_key=True) name = Column(String(32)) extra = Column(String(16)) #一对多 class Favor(Base): __tablename__ = 'favor' nid = Column(Integer,primary_key=True) caption = Column(String(50),default='red',unique=True) class Person(Base): __tablename__ = 'person' nid = Column(Integer,primary_key=True) name = Column(String(32),index=True,nullable=True) favor_id = Column(Integer,ForeignKey('favor.nid')) #多对多class Group(Base): __tablename__ = 'group' nid = Column(Integer,primary_key=True) name = Column(String(64),unique=True,nullable=False) port = Column(Integer,default=22) class Server(Base): __tablename__ = 'server' id = Column(Integer,primary_key=True,autoincrement=True) hostname = Column(String(64),unique=True,nullable=False)class ServerToGroup(Base): __tablename__ = 'servertogroup' nid = Column(Integer,primary_key=True,autoincrement=True) server_id = Column(Integer, ForeignKey('server.id')) group_id = Column(Integer, ForeignKey('group.nid'))# Base.metadata.create_all(engine) #生成表Base.metadata.drop_all(engine) #生成表
#添加数据(往Users表增加数据)
123456789101112131415
from sqlalchemy.ext.declarative import declarative_basefrom sqlalchemy import Column,Integer,String,ForeignKey,UniqueConstraint,Indexfrom sqlalchemy.orm import sessionmaker,relationshipfrom sqlalchemy import create_enginefrom orm一对多和多对多 import Users #从orm一对多和对多程序中导入Users类engine = create_engine("mysql+pymysql://root:[email protected]:3306/test",max_overflow=5)Base = declarative_base()Base.metadata.create_all(engine) #生成表# Base.metadata.drop_all(engine) #生成表Session = sessionmaker(bind=engine)session = Session()#增加数据obj = Users(name="parktrick",extra="Devops")session.add(obj)session.commit() #不执行这步,数据是写入不了数据库的
#删除User表某条数据
123
#删除数据session.query(Users).filter(Users.id > 2).delete() #把Users.id大于2的数据删除掉session.commit()
#修改数据
123
#修改数据session.query(Users).filter(Users.id > 1).update({"name":"bob"}) #修改User.id大于1的name为"bob"session.commit()
❼ 零基础学Python应该学习哪些入门知识
关于零基础怎么样能快速学好Python的问题,网络提问和解答的都很多,你可以网络下看看。我觉得从个人自学的角度出发,应从以下几个方面来理解:
1 为什么选择学python?
据统计零基础或非专业的人士学python的比较多,据HackerRank开发者调查报告2018年5月显示(见图),Python排名第一,成为最受欢迎编程语言。Python以优雅、简洁着称,入行门槛低,可以从事Linux运维、Python Web网站工程师、Python自动化测试、数据分析、人工智能等职位,薪资待遇呈上涨趋势。
2 入门python需要那些准备?
2.1 心态准备。编程是一门技术,也可说是一门手艺。如同书法、绘画、乐器、雕刻等,技艺纯熟的背后肯定付出了长时间的反复练习。不要相信几周速成,也不能急于求成。编程的世界浩瀚无边,所以请保持一颗敬畏的心态去学习,认真对待写下的每一行代码,甚至每一个字符。收拾好自己的心态,向着编程的世界出发。第一步至关重要,关系到初学者从入门到精通还是从入门到放弃。选一条合适的入门道路,并坚持走下去。
2.2 配置 Python 学习环境。选Python2 还是 Python3?入门时很多人都会纠结。二者只是程序不兼容,思想上并无大差别,语法变动也并不多。选择任何一个入手,都没有大影响。如果你仍然无法抉择,那请选择 Python3,毕竟这是未来的趋势。
编辑器该如何选?同样,推荐 pycharm 社区版,配置简单、功能强大、使用起来省时省心,对初学者友好,并且完全免费!其他编辑器如:notepad++、sublimeText 3、vim 和 Emacs等不推荐了。
操作环境?Python 支持现有所有主流操作平台,不管是 windows 还是 mac 还是 linux,都能很好的运行 Python。并且后两者都默认自带 Python 环境。
2.3 选择自学的书籍。我推荐的书的内容由浅入深,建议按照先后顺序阅读学习:
2.3.1《Python简明教程》。这是一本言简意赅的 Python 入门教程,简单直白,没有废话。就算没有基础,你也可以像读小说一样,花两天时间就可以读完。适合入门快速了解语法。
2.3.2 廖雪峰编写的《Python教程》。廖先生的教程涵盖了 Python 知识的方方面面,内容更加系统,有一定深度,有一定基础之后学习会有更多的收获。
2.4 学会安装包。Python中有很多扩展包,想要安装这些包可以采用两种方法:
2.4.1 使用pip或easy_install。
1)在网上找到的需要的包,下载下来。eg. rsa-3.1.4.tar.gz;
2)解压缩该文件;
3)命令行工具cd切换到所要安装的包的目录,找到setup.py文件,然后输入python setup.py install
2.4.2 不用pip或easy_install,直接打开cmd,敲pip install rsa。
3 提升阶段需要恒心和耐力。
完成入门阶段的基础学习之后,常会陷入一个瓶颈期,通过看教程很难进一步提高编程水平。这时候,需要的是反复练习,大量的练习。可以从书上的例题、作业题开始写,再写小程序片段,然后写完整的项目。我们收集了一些练习题和网站。可根据自己阶段,选择适合的练习去做。建议最好挑选一两个系列重点完成,而不是浅尝辄止。
3.1 多做练习。推荐网站练习:
crossin编程教室实例:相对于编程教室基础练习着重于单一知识点,
编程实例训练对基础知识的融会贯通;
hackerrank:Python 部分难度循序渐进,符合学习曲线
实验楼:提升编程水平从做项目开始;
codewar:社区型编程练习网站,内容由易到难;
leetcode:为编程面试准备,对初学者稍难;
牛客网:提供 BAT 等大厂笔试题目;
codecombat:提供一边游戏一边编程;
projecteuler:纯粹的编程练习网站;
菜鸟教程100例:基于 py2 的基础练习;
3.2 遇到问题多交流。
3.2.1 利用好搜索引擎。
3.2.2 求助于各大网站。推荐
stackoverflow:这是一个程序员的知识库;
v2ex:国内非常不错的编程社区,不仅仅是包含程序,也包含了程序员的生活;
segmentfault:一家以编程问答为主的网站;
CSDN、知乎、简书等
3.2.3 加入相关的QQ、微信群、网络知道。不懂的可以随时请教。
❽ 自己编写一个ORM应该怎么做
ORM框架采用元数据来描述对象一关系映射细节,元数据一般采用XML格式
❾ python有没有类似java的ibatis框架
简单了解了下python的orm框架,基本上都是不用写sql语句,映射的是表的整条记录,类似java中hibernate框架。在python中有没有类似java的ibatis框架呢?
那你直接用数据库的驱动就好了嘛…………SQLite3 用标准库 sqlite,MySQL 用 MySQLdb,PostgreSQL 用 psycopg2。
❿ Python 有哪些好的 Web 框架
python好的web框架还是有很多的,对初学者来说,循序渐进是最重要的,我推荐学习 Flask框架 。
Flask 很轻,花很少的成本就能够开发一个简单的网站。非常适合初学者学习。
Flask 框架学会以后,可以考虑学习插件的使用。例如使用 WTForm + Flask-WTForm 来验证表单数据,用 SQLAlchemy + Flask-SQLAlchemy 来对你的数据库进行控制。
BTW:果壳网基于 Flask 开发的。
另外也简单介绍下其他框架:
1. Django。如楼上所说,是一个全能型框架。目前 Django 的使用面还是很广的,有学习的价值,但是不建议初学者学习,因为要学习的东西太多了,一下子难以吸收会失去兴趣。当然,Django 的目的是为了让开发者能够 快速 地开发一个网站,它提供了很多模块,其中我最喜欢的就是 admin 模块 如果对 Django 熟悉的话,papapa 一下子就写好一个网站的原型了。
2. Tornado。传说中性能高高的框架。Tornado 是一个很好的框架,支持异步处理的功能,这是它的特点,其他框架不支持。另外一点是,Tornado 的设计似乎更注重 RESTful URL。但 Tornado 提供了网站基本需要使用的模块外,剩下的则需要开发者自己进行扩展。例如数据库操作,虽然内置了一个 database 的模块(后来独立出去了,现在叫做 torndb,bdarnell/torndb · GitHub)但是不支持 ORM,快速开发起来还是挺吃力的。如果需要 ORM 支持的话,还需要自己写一层将 SQLAlchemy 和 Tornado 联系起来,而且这里还有一个坑。
BTW:知乎就是基础 Tornado 开发的。
3. Bottle。Bottle 和 Flask 都属于轻量级的 Web 框架。但是 Bottle 似乎落寞了。我觉得跟他的 API 设计有关系。个人认为 Bottle 使用起来不那么顺手,因此也用得少。这里不做太多介绍。
4. web.py。也是很轻的一个框架,使用不多,也不做介绍。
5. web2py。我看楼上都没有对这个框架做介绍。这个框架是 Google 在 web.py 基础上二次开发而来的,兼容 GAE 。性能据说很高,曾经用他来做自己的主页,感觉也还不错。缺点同样是对扩展支持不太好,需要自己进行扩展。
6. Quixote。着名的 豆瓣 就是基于 Quixote 开发的。跟上面几个框架不同,Quixote 的路由会有些特别。另外 Quixote 的性能据说也好。