怎样才能彻底掌握flask?怎么个学习顺序比较合理?
只了解基本的python语法。看了the foudation of python web programming的web部分,感觉没啥收获。wsgi在看,但看不懂。。有点不知道从何学起了。。。大虾们指点一下吧。
回复内容:
推荐Flask Web Development这本书,循序渐进每一小节都有git tag,很方便看代码。不要太关注细节,如你提到的wsgi,先整体,后细节,而疑惑就需要自己进入源码找答案了。
要深入学习还是需要看源码,了解flask的原理。比如context,request, session的原理;如何增加模板filter,如何注入方法;flask_sqlalchemy的db session也是构建在context上,具体原理;flask_cache的细节,memoize如何通过类方法清空实例方法的cache;jinja2的filter.py中的filter是否熟悉,bccache是否对你有用,深入了解模板原理。
当遇到阻塞请求,如调用外部api时,如何提高系统吞吐量;用flask如何实现长连接(Comet)。。。(借助gevent,想明白后你就会发现其实tornado最有优势的优点其实不过如此)
其实单纯的一个框架是有限的,难点在于如何和其它组件更好更高效的工作。 1. 最起码理解网络,http这层肯定要理解
2. 熟悉python,这是个过程,学习加实践
3. 学习官方文档,官方文档是最全的也是意图最明确的。
4. 写demo,不会写多看看别人怎么写,自己就会了。
5. 研究某一点,深入到源码,有时候源码也看不懂可以请教一下其他人。
对于想深入flask内部我觉得由简到难需要看的(自己感觉)。
1. config原理
2. 路由原理
3. Wsgi接口调用
4. 理解session
5. 理解threading.local
6. 理解flask自己封装的thread local
7. 理解g和request
8. 理解app context和request context 首先必须赞一下 pocoo,pocoo 的文档很规范,解释得很清晰。建议楼主直接看英文原文来学习 Flask。
接着回答问题。
我认为学习 Flask 难点不在于如何使用 Flask,而是对 Python 的使用,以及对 Web 框架的理解。理解如何使用 Web 框架开发网站的话,Flask 学习起来应该是很顺利的。
有一些概念是需要明白的,例如 MVC 开发模式、Route 定义、HTTP Method 之类。
当然 Flask 还有自己的特点,如 Blueprint 和 Testing 部分,建议楼主学一学。
对 Flask 框架基本了解之后,可以看看 Github 上一些基于 Flask 的网站源码,例如 June (pythoncn/june 路 GitHub) 。
最后,聪明的开发者是不会自己早轮子的。下面是 Python-China 一网友收集的 Flask 资源:
humiaozuzu/flask-dev-bookmarks 路 GitHub
https://github.com/humiaozuzu/flask-dev-bookmarks/blob/master/plugins.md 同在学flask,本来看中文教程,现在准备放弃。。
在跟着教程做的时候,遇到几个问题:
1.自己不理解Web开发的基本知识,不知道Web框架应该有哪些作用
2.中文文档坑啊!步骤 2: 应用设置代码这里,步骤2后面的链接是步骤4(坑了之后才发现链接错误),跟做完后无法运行,对照英文文档后发现还漏了一些代码没说到。。
打算按之前答案说的,先了解Web框架的基础知识吧。
刚刚搜了一下,推荐这篇文章:【译】什么是 web 框架? 学flask看这个教程 The Flask Mega-Tutorial, Part III: Web Forms 特别好 flask?很难学吗?
wsgi可以看很多的例子,比如这个http://archimedeanco.com/wsgi-tutorial/
flask本身简单到不能再简单,所以如果你觉得难,那么显然是没学好基础,建议你先从基础学起,比如web开发基本知识:session管理啊,template啊神码的,然后学flask一天就差不多了…… 以下内容节选自我的博客《Flask入门指南》,不知道对你有没有帮助。
Flask 入门指南
--------
Flask入门
Flask上手非常容易,仅仅看完Flask官方文档中的Quickstart部分,就可以实现简单的网站了。当然,网站看起来好不好,与html, CSS和js水平有关,这不在Flask的使用范围之内。
Flask精通
若要精通Flask,仅仅通过Quickstart快速入门完全不够,那怎样才能把Flask用好呢?用好Flask没什么特殊的捷径,靠的依然是『多使用、多思考、多看他人优秀的代码』,经验可能是编程世界里最恰当称之为掌握新技术的捷径的东西,而经验的积累却又是一个漫长的过程,靠的也是『多使用、多思考、多看他人优秀的代码』。Flask的精通要靠自己努力,优秀的资料可以分享。我在这里推荐几个我觉得不错的资料,欢迎大家补充。
(1) Flask官方文档
Flask官方文档写的还是相当不错的,作为学习Flask的第一手资料没有问题,且Flask官方的Snippets,对开发很有帮助,也能避免开发者花太多时间考虑重复的轮子如何开发
(2) Flask Web开发
这本书相当不错,通过这本书的学习,基本能做到Flask从入门到精通,也是我建议的第一手Flask学习资料。书中介绍的Flask构建大型项目的架构方式,很是受用,很有实际意义。
(3) miguelgrinberg.com
上面图书作者的博客,是积累Flask开发经验的好资料
(4) Write a Tumblelog Application with Flask and MongoEngine
这是MongoDB官方文档中的一个教程,也是学习Flask开发的一个很好案例,尤其适合Flask+MongoDB开发的应用场景
(5) Flask 源码
Flask 本身是一个非常优秀的Python库,阅读其源码对理解Flask及提高Python开发水平非常有帮助。
(6) The Hitchhiker’s Guide to Python!
这个资料虽然不直接与Flask有关,但对初学者,绝对有学习的价值
我想跟着这个问题问问各位,根据以上的回答呢,我觉得要学flask,首先得学习一部分网页开发的知识,然后是要能熟悉运用python进行编码,最后再看flask文档或项目源码跟着学,我这样理解对吗?同时我也想问问如果学flask需要先学习一部分知识,就像前面有人说的“web开发基本知识:session管理啊,template啊神码的”,能不能具体讲讲这部分“必要知识”是什么?(因为我是先学python编程的,现在想转入用python做网页开发,所以想问问有哪些“基本知识”要学,求帮忙!) 我们都知道,想要精一行,必须通十行。比如你想精通Flask,就不仅仅是要整天专研Flask,还需要你懂HTML、CSS、JavaScript、python、SQL,当你程序写好了,要部署还需要懂Linux,懂运维。
所以在“彻底掌握flask”这条路上,建议除了学习flask之外,还要把精力放在Web前端后端的“本质”的学习,flask只是术,而后者是道。 直接看官方文档,写的很清楚;
看The Flask Mega,很快就能入门。开源中国上有翻译。
github上的flask相关项目拿下来看看

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











모바일 XML에서 PDF의 속도는 다음 요인에 따라 다릅니다. XML 구조의 복잡성. 모바일 하드웨어 구성 변환 방법 (라이브러리, 알고리즘) 코드 품질 최적화 방법 (효율적인 라이브러리 선택, 알고리즘 최적화, 캐시 데이터 및 다중 스레딩 사용). 전반적으로 절대적인 답변은 없으며 특정 상황에 따라 최적화해야합니다.

단일 애플리케이션으로 휴대 전화에서 직접 XML에서 PDF 변환을 완료하는 것은 불가능합니다. 두 단계를 통해 달성 할 수있는 클라우드 서비스를 사용해야합니다. 1. 클라우드에서 XML을 PDF로 변환하십시오. 2. 휴대 전화에서 변환 된 PDF 파일에 액세스하거나 다운로드하십시오.

C 언어에는 내장 합계 기능이 없으므로 직접 작성해야합니다. 합계는 배열 및 축적 요소를 가로 질러 달성 할 수 있습니다. 루프 버전 : 루프 및 배열 길이를 사용하여 계산됩니다. 포인터 버전 : 포인터를 사용하여 배열 요소를 가리키며 효율적인 합계는 자체 증가 포인터를 통해 달성됩니다. 동적으로 배열 버전을 할당 : 배열을 동적으로 할당하고 메모리를 직접 관리하여 메모리 누출을 방지하기 위해 할당 된 메모리가 해제되도록합니다.

XML을 PDF로 직접 변환하는 응용 프로그램은 근본적으로 다른 두 형식이므로 찾을 수 없습니다. XML은 데이터를 저장하는 데 사용되는 반면 PDF는 문서를 표시하는 데 사용됩니다. 변환을 완료하려면 Python 및 ReportLab과 같은 프로그래밍 언어 및 라이브러리를 사용하여 XML 데이터를 구문 분석하고 PDF 문서를 생성 할 수 있습니다.

XML 이미지를 먼저 변환하려면 먼저 XML 데이터 구조를 결정한 다음 Python의 Matplotlib와 같은 적절한 그래픽 라이브러리를 선택하고 데이터 구조를 기반으로 시각화 전략을 선택하고 데이터 볼륨 및 이미지 형식을 고려하고 효율적인 라이브러리를 수행하거나 필요에 따라 PNG, JPEG 또는 SVG로 저장하십시오.

XML 서식 도구는 규칙에 따라 코드를 입력하여 가독성과 이해를 향상시킬 수 있습니다. 도구를 선택할 때는 사용자 정의 기능, 특수 상황 처리, 성능 및 사용 편의성에주의하십시오. 일반적으로 사용되는 도구 유형에는 온라인 도구, IDE 플러그인 및 명령 줄 도구가 포함됩니다.

XML 구조가 유연하고 다양하기 때문에 모든 XML 파일을 PDF로 변환 할 수있는 앱은 없습니다. XML에서 PDF의 핵심은 데이터 구조를 페이지 레이아웃으로 변환하는 것입니다. XML을 구문 분석하고 PDF를 생성해야합니다. 일반적인 방법으로는 요소 트리와 같은 파이썬 라이브러리를 사용한 XML 및 ReportLab 라이브러리를 사용하여 PDF를 생성하는 XML을 구문 분석합니다. 복잡한 XML의 경우 XSLT 변환 구조를 사용해야 할 수도 있습니다. 성능을 최적화 할 때는 멀티 스레드 또는 멀티 프로세스 사용을 고려하고 적절한 라이브러리를 선택하십시오.

XSLT 변환기 또는 이미지 라이브러리를 사용하여 XML을 이미지로 변환 할 수 있습니다. XSLT 변환기 : XSLT 프로세서 및 스타일 시트를 사용하여 XML을 이미지로 변환합니다. 이미지 라이브러리 : Pil 또는 Imagemagick와 같은 라이브러리를 사용하여 XML 데이터에서 이미지를 그리기 및 텍스트 그리기와 같은 이미지를 만듭니다.
