Flask框架难学吗?它和Django哪个更容易一些,这可能是学Python web开发的同学经常问的问题,下面来说一下flask框架。

Flask是python的web框架,最大的特征是轻便,让开发者自由灵活的兼容要开发的feature。

为什么要从Flask开始学习web框架?

1.python语言的灵活性给予了Flask同样的特征;

2.无论是用户画像还是产品推荐,python相比其他语言都有极大的优势;

3.Flask轻便,容易上手,试错成本低。

所以,从搭建一个轻便的博客出发,既要容易上手实现,又要能够在后期扩展用户画像和产品推荐,我选择Flask作为web框架。

Flask上手前提少,能够极大帮助初学者快速理解web开发,这也是我喜欢Flask的原因。

(1)面向对象编程(Object-Oriented Programming, OOP)

相信绝大多数人都接触过OOP,比如使用Java, Python, Go等。在Flask中,涉及基础OOP的概念,包括对象、类、继承、封装等。

(2)python基础

Flask中涉及简单python概念,包括模块、包、装饰器、模块等。

(3)命令行基础

大部分的开发都绕不开命令行,Flask同样要求基础命令行操作,例如上传服务器、查询文件、修改配置文件等。

(4)数据库基础

web开发会产生数据管理的问题,虽然可以使用非数据库的方式搭建静态网页,但从长远来看将,掌握一门基础的数据库工具是很有必要的。比如结构化数据库Mysql, Postgresql,非结构化的MongoDB, Redis等。

(5)前端基础

虽然搭建网站主要是后台逻辑编写,但今天越来越多的人在意前台展现,因此Flask除了后台python语言的要求外,还要求掌握基础的html, JavaScript, CSS。

(6)版本控制(增强)

版本控制是所有程序开发的基础,了解基础的版本控制可以大大提高开发的效率。掌握基础的git技能会提高Flask网站开发速度。

安装

使用virtualenv或者python3.3以上的pyvenv建立虚拟环境来配置开发环境。

可以通过pip方便的配置flask:

$ pip install flask

初始化(Initialization)

(1)创建flask实例对象

flask程序必须创建一个程序实例,常用方法:

from flask import Flask

app = Flask(__name__)

这里的app就是一个程序实例,客户端(一般是浏览器)将请求发送给服务端Web服务器,Web服务器再把请求发给Flask实例。

(2)构建实例对象从URL到python函数的映射关系

程序实例需要知道所有URL对应的执行代码,所以要有从URL到python函数的映射关系。处理URL到python函数映射关系的程序一般叫做路由(Router)。

Flask实现中一般通过python装饰器来实现,例如:

@app.route('/')

def index():

return '

test

'

上面的程序从程序化实例app开始,构建了根目录'/'的路由,具体实现的程序是index()函数,返回了一段html代码'test'字符串。

路由所对应的程序称为视图函数(view function),即上面的index()函数。

(3)启动服务器

程序实例用run方法来启动服务器,例如:

if __name__ == '__main__':

app.run(debug=True, port=8777)

上面的程序是常见套路,当前python文件被执行的时候,运行flask实例化对象的run方法,启动服务器,同时上面程序设定了两个常用参数:debug为True,端口是8777,避免和其他应用的端口冲突。

(4)请求上下文

Flask使用上下文把一些视图函数的对象变成全局可访问,共有4中模式:

模板

业务逻辑和表现逻辑分开,才能开发出易维护的网站,表现逻辑往往放在模板中。

Flask的模板默认在根目录的templates中,例如:

from flask import Flask, render_templatefrom datetime import datetime

app = Flask(__name__)@app.route('/')def index(name):

return render_template('index.html', name=name)

if __name__ == '__main__':

app.run(debug=True, port=8777)

index.html页面可以独立出来专门处理网站的表现逻辑,例如:

{% block title %}Main{% endblock %}

{% block page_content %}

Hello World!

Hello,

{% if name %}{{ name }}

{% else %}Stranger{% endif %}!

{% endblock %}

Flask默认使用Jinjia2进行模板渲染,可以用一些控制语句,例如上面的if else判断。

以上就是python的flask框架难学吗的详细内容,更多关于flask框架难吗的资料请关注脚本之家其它相关文章!

python 框架好学吗-python的flask框架难学吗相关推荐

  1. 零基础可以学python吗-Python编程语言好学吗?零基础转行能学Python吗?

    Python编程语言好学吗?零基础转行能学Python吗?人工智能时代的来临催生了很多新兴行业,Python是最具代表性也是比较热门的技术之一.有人看好Python入门简单.功能强大的特性,选择转行从 ...

  2. python零基础能学吗-Python编程语言好学吗?零基础转行能学Python吗?

    Python编程语言好学吗?零基础转行能学Python吗?人工智能时代的来临催生了很多新兴行业,Python是最具代表性也是比较热门的技术之一.有人看好Python入门简单.功能强大的特性,选择转行从 ...

  3. Python编程语言好学吗? 零基础转行能学Python吗?

    Python编程语言好学吗?零基础转行能学Python吗?人工智能时代的来临催生了很多新兴行业,Python是最具代表性也是比较热门的技术之一.有人看好Python入门简单.功能强大的特性,选择转行从 ...

  4. html文件怎么用Python做后端,利用python实现后端写网页(flask框架).pdf

    利利用用python实实现现后后端端写写网网页页 ((flask框框架架)) 如何用python做后端写网页-flask框架 什么是Flask安装flask模块Hello World更深一步:数据绑 ...

  5. python使用redis队列_Python的Flask框架应用调用Redis队列数据的方法

    任务异步化打开浏览器,输入地址,按下回车,打开了页面.于是一个HTTP请求(request)就由客户端发送到服务器,服务器处理请求,返回响应(response)内容. 我们每天都在浏览网页,发送大大小 ...

  6. python处理信号机制_Python的Flask框架中的signals信号机制

    Flask 提供了信号(Signals)功能,是一种消息分发机制.类似于钩子(Hooks).使用信号功能可以降低程序的耦合,分解复杂的业务模型.例如在更新了产品数据后,可以发送一个信号.当有需要对产品 ...

  7. python开发好学吗-python软件开发好学吗

    今天给大家推荐一篇前辈自学Python的总结文章.希望你从中有所收获. 我不是技术类在职人士,完全属于岗外人员.由于长期从事非技术类岗位的工作,无论对web开发还是数据分析,相关知识都比较欠缺. 另外 ...

  8. python开发好学吗-python难学吗

    共 1 个关于"学python容易吗"精选答案 黄皓轩 推荐于:2020-05-11 编程最重要的就是动手实战,你要问到底有没有用,这个就很难说.你觉得学了这么多年的数学有用吗?好 ...

  9. python redis 消息队列_Python的Flask框架应用调用Redis队列数据的方法

    任务异步化打开浏览器,输入地址,按下回车,打开了页面.于是一个HTTP请求(request)就由客户端发送到服务器,服务器处理请求,返回响应(response)内容. 我们每天都在浏览网页,发送大大小 ...

最新文章

  1. 企业研发人员配备比例_企业管理人员合理配置比例
  2. mysql 相除 取整数位,psql除法保留小数,实现向上取整和向下取整操作_PostgreSQL_数据库...
  3. poj 2388 排序的水题
  4. 三千多天之前我没有编辑完的技术文档
  5. SAP Gigya里类似Netweaver里SAP_ALL的权限
  6. mysql卸载权限不够_Linu下启动MySQL结果显示:env: /etc/init.d/mysql:权限不够怎么解决?...
  7. SQLSERVER到底能识别多少个逻辑CPU?
  8. 移动端开发项目的一些躺坑笔记
  9. Swift 接入LinkedIn登录
  10. CSDN用户数据库泄露事件给我们的启示
  11. 西门子1200PLC的OB块用法讲解
  12. win7更改计算机名后桌面壁纸,win7系统电脑壁纸自动改变被恶意篡改的解决方法...
  13. 手动删除Mac版迅雷无用的功能,让迅雷软件更清爽无广告纯粹下载
  14. 计算机键盘各个键的用途,给大家介绍键盘各个键的功能图解
  15. Greenplum5.9.0简单使用
  16. JAVA——对当前时间进行输出
  17. Java蓝桥模拟战——特殊的数字:153是一个非常特殊的数,它等于它的每位数字的立方和,即153=1*1*1+5*5*5+3*3*3。编程求所有满足这种条件的三位十进制数。
  18. 2020 年互联网大厂薪资出炉!你酸了吗
  19. CODEVS 1258 关路灯
  20. SQL SERVER 去掉字符串左边的0

热门文章

  1. opencv编程解决warning C4003: “max”宏的实参不足
  2. Java 客户端界面功能:停止当前操作
  3. MFC下的MessageBox使用_附带CBUTTON
  4. (二)数据预处理 2019年研究生数学建模D题《汽车行驶工况构建》
  5. 数据结构之权值(在吊挂中的实际应用)
  6. Python快速教程博客园地址
  7. 苹果系统里面 dictionary 如何加入中文词典
  8. SharePoint 2010 沙盒解决方案以及 Visual Studio 2010 模板
  9. Validator(二)自定义
  10. python画直方图代码-python的pyecharts绘制各种图表详细(附代码)