flask简介:

  flask是一款非常流行的Python Web框架,出生于2010年,作者是Armin  Ronacher,本来这个项目只是作者在愚人节的一个玩笑,后来由于非常受欢迎,进而成为一个正式的项目。目前为止最新的版本是0.11.1。

  flask自2010年发布第一个版本以来,大受欢迎,深得开发者的喜爱,并且在多个公司已经得到了应用,flask能如此流行的原因,可以分为以下几点:

    微框架、简洁、只能他需要做的,给开发提供了很大的扩展性。

    Flask和相关的依赖(Jinja2、Werkzeug)设计得非常优秀,用起来很爽。

    开发效率非常高,比如使用SQLAlchemy的ORM操作数据库可以节省开发者大量书写sql的时间。

    社会活跃度非常高。

  Flask的灵活度非常之高,他不会帮你做太多的决策。即使做已经帮你做出选择,你也能非常容易的更换成你需要的,比如:

    使用Flask开发数据库的时候,具体是使用SQLAlchemy还是MonyoEngine或者是不用ORM而直接于MySQL-Python这样的底层驱动进行开发都是可以的,选择权完全掌握在你自己的手中。区别于Django,Django内置了非常完善和丰富的功能,并且如果你想替换成你自己想要的,要么不支持,要么非常麻烦。

    把默认的Jinija2模板引擎替换成Mako引擎或者是其他模板引擎都是非常容易的。

### 第一个flask程序讲解:

  1.第一次创建项目的时候,要添加flask的虚拟环境。添加虚拟环境的时候,一定要选择到python这个文件。

  比如你的flask的虚拟环境的目录在/User/Virtualenv/flask-env/bin/python.

  2.flask程序代码的详细解释:

  1. # encoding:utf-8
  2.  
  3. #从flask这个框架中导入Flask这个类
  4. from flask import Flask
  5.  
  6. #初始化一个Flask对象
  7. #Falsk()
  8. #需要传递一个参数__name__
  9. #1.方便flask框架区寻找资源
  10. #2.方便flask插件比如Flask-Sqlalchemy出现错误的时候,好去寻找问题所在的位置
  11. app = Flask(__name__)
  12.  
  13. #@app.route是一个装饰器
  14. #@开头,并且在函数的上面,说明是装饰器
  15. # 这个装饰器的作用,是做一个url与视图韩式的映射
  16. #127.0.0.1:5000/-->去请求hello_world这个函数,然后将结果返回给浏览器
  17. @app.route('/')
  18. def hello_world():
  19. return 'Hello World!'
  20.  
  21. #如果当前这个文件是作为入口程序运行,那么就执行app.run()
  22. if __name__ == '__main__':
  23. #app.run()
  24. #启动一个应用服务器,来接受用户的请求
  25. #while True:
  26. # listen()
  27.  
  28. app.run()

###设置debug模式

1.在app.run()中传入一个关键字参数debug:app.run(debug=True),就设置当前项目为debug模式

2.debug模式的两大功能:

  *当程序出现为题的时候,可以在页面中看到错误信息和出错的位置。

  *只要修改了项目的'python'文件,程序会自动加载,不需要手动重新启动服务器。

###使用配置文件:

  1.新建一个‘config.py’文件

  2.在主app文件中导入这个文件。并且配置到'app',示例代码如下:

  1. import config
  2.  
  3. app.config.from_object(config)

  3.还有许多的其他参数,都是放在这个配置文件中,比如‘SECRET_KEY’和‘SQLALCHEMY’这些配置,都是在这个文件中。

  

###url传参数:

  1.参数的作用:可以在相同的URL,但是指定不同的参数,来加载不同的数据。

  2.在flask中如何使用参数:

  1. @app.route('/article/<id>')
  2. def article(id):
  3. return u'您请求的参数是:%s'% id
    *参数需要放在两个尖括号中。
    *视图函数中需要放和url中的参数同名的参数
  4.  
  5. ###反转URL:
      1.什么叫做反转URL:从视图函数到url的转换叫做反转url
      2.反转日url的用处:
        *在页面重定向的时候,会使用url反转
        *在模板中,也会使用url反转
  6.  
  7. ###页面跳转和重定向
      1.用处:在用户访问一些需要登录的页面的时候,如果用户没有登录,那么可以让他重定向到登录页面
      2.代码实现
    、、、
    from flask import redirect,url
    redirect(url_for('login'))
    、、、

###Flask渲染Jinja2模板和传参:

1.如何渲染模板:

  *模板放在‘templates’文件夹下

  *从‘flask’中导入‘render_template’函数。

  *在视图函数中,使用‘render_template’

  *

第一个flask程序的更多相关文章

  1. python flask框架学习(二)——第一个flask程序

    第一个flask程序 学习自:知了课堂Python Flask框架——全栈开发 1.用pycharm新建一个flask项目 2.运行程序 from flask import Flask # 创建一个F ...

  2. 1、Flask实战第1天:第一个Flask程序

    Flask是流行的python web框架...(* ̄︶ ̄) 零基础到企业级论坛实战,人生苦短,我用python,开启FLask之旅吧... 安装开发环境 下载Python win版安装包 双击运行, ...

  3. Flask框架 之第一个Flask程序

    from flask import Flask # 创建flask应用对象 # __name__ 代表当前模块名称 # flask以当前目录为总目录,static目录为静态目录,templates为模 ...

  4. Flask基础(03)-->创建第一个Flask程序

    # 导入Flask from flask import Flask # 创建Flask的应用程序 # 参数__name__指的是Flask所对应的模块,其决定静态文件从哪个地方开始寻找 app = F ...

  5. 一:flask-第一个flask程序

    安装flask:pip install flask,或者pycharm安装 最小模型 访问 后台:

  6. 【Flask系列】开发一个简单的Flask程序

    知识点 初始化:每一个flask程序都必须创建一个程序实例,遵循WSGI(Web Server Gateway interface)协议,把请求->flask Obj; 创建实例: app = ...

  7. 一个简单的flask程序

    初始化 所有Flask程序都必须创建一个程序实例. 程序实例是Flask类的对象,经常使用下述代码创建: from flask import Flask app = Flask(__name__) F ...

  8. flask 程序结构概括

    以此结构为例,这个小项目是<Flask Web开发:基于python的web应用开发实战>第一部分结束后的代码框架 第一层 有app.tests.migrations三个文件夹和confi ...

  9. Flask从入门到精通之flask程序入门

    初始化 所有Flask程序都必须创建一个程序实例,Web服务器使用一种名为Web服务器网关接口的的协议(WSGI),把接收自客户端的所有请求转发给这个对象处理.程序实例是Flask类的对象,使用下面代 ...

随机推荐

  1. java24种设计模式

    一.设计模式定义 设计模式(Design Pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结,使用设计模式是为了可重用代码.让代码更容易被他人理解并且保证代码可靠性. ...

  2. UC浏览器体验

    1.用户界面: 有两个页面,一个展示网页应用-可添加自己喜欢的网页应用,另一个用来搜索,有推荐的常用的网址,有UC头条,页面下有设置,整体布局常规 2.短期刺激: 没有特别花哨的地方:个人感觉比较实用 ...

  3. 求解热传导方程matlab

    这是非稳态一维热传导的方法,也叫古典显格式. 如果是做数学建模,就别用了,这种方法计算量比较大,算的很慢,而且收敛不好. 但是如果实在没办法也能凑合用. 该改的地方我都用???代替了. 给个详细解释h ...

  4. 函数声明后面的const用法

    void function() const{} 通常我们会看到一些函数声明后面会跟着一个const,这个const是做什么的呢? 看一下下面的例子,就知道了.直接在编译前,就会提示下面的两个错误 // ...

  5. STL用法

    map.find(key) 获取map容器中指定键值x的元素,如果找到,返回此元素的迭代器,否则返回map::end()的迭代器(即查找到容器的末尾都没有找到此元素).

  6. 【Cracking the Code Interview(5th edition)】一、数组与字符串(C++)

    1.1 实现一个算法,确定一个字符串的所有字符是否全都不同.不允许使用额外的数据结构. 解答:这里假定字符集为ASCII码,可以与面试官沟通确认字符串使用的字符集.由于字符集是有限的,建立一个数组模拟 ...

  7. POJ1004 Financial Management

    题目来源:http://poj.org/problem?id=1004 题目大意: Larry今年毕业并找到了工作.他开始赚很多的钱,然而他似乎总觉得不够.Larry决定好好掌控他的资产,解决他的财务 ...

  8. [AH2017/HNOI2017]礼物(FFT)

    [Luogu3723] [DarkBZOJ4827] 题解 首先,有一个结论:两个手环增加非负整数亮度,等于其中一个增加一个整数亮度(可以为负) 设增加亮度为x.求\(\sum_{i=1}^{n}(a ...

  9. 多线程DP (要一起行动才可以)

    题目描述 Description 设有N*N的方格图(N<=10,我们将其中的某些方格中填入正整数,而其他的方格中则放入数字0.如下图所示(见样例): 某人从图的左上角的A 点出发,可以向下行走 ...

  10. 上传文件插件dropzone的实例

    html: <div class="field"> <div id="file" class="dropzone"> ...