我是励志哥

初识flask

一 什么是flask?

  Flask是一个Python编写的Web 微框架,让我们可以使用Python语言快速实现一个网站或Web服务,在介绍Flask之前首先来聊下它和Django的联系以及区别,django个大而全的web框架,它内置许多模块,flask是一个小而精的轻量级框架,Django功能大而全,Flask只包含基本的配置, Django的一站式解决的思路,能让开发者不用在开发之前就在选择应用的基础设施上花费大量时间。Django有模板,表单,路由,基本的数据库管理等等内建功能。与之相反,Flask只是一个内核,默认依赖于2个外部库: Jinja2 模板引擎和 WSGI工具集--Werkzeug , flask的使用特点是基本所有的工具使用都依赖于导入的形式去扩展,flask只保留了web开发的核心功能。

  WSGI(web服务器网关接口)是python中用来规定web服务器如何与python Web服务器如何与Python Web程序进行沟通的标准,本质上就是一个socket服务端。而 Werkzeug模块 就是WSGI一个具体的实现

2 为什么会有flask?

  flask性能上基本满足一般web开发的需求, 并且灵活性以及可扩展性上要优于其他web框架, 对各种数据库的契合度都非常高

  1. 性能基本满足需求

  2 .灵活性可拓展性强

  3. 对各种数据库的契合度都比较高。

  4.在真实的生产环境下,小项目开发快,大项目设计灵活

3 第一个flak程序

3.1 项目目录详解

  “static文件夹”用于存放各种静态文件 css、js、图片等等

​   “templates文件夹”用于存放html模板文件

​   “app.py”为我们的主文件 ,启动项目需要启动该文件

 主文件app.py文件代码

from flask import Flask

# 实例化flask 类得到一个实例化对象app
app = Flask(__name__)


@app.route('/')  # 用来匹配路由
def hello_world():
    return 'Hello World!'


if __name__ == '__main__':
    app.run()  # 实现了flask程序在开发环境下运行起来,并且

# 默认端口是127.0.0.1:5000

 

 不要用快捷创建flask的方式一样创建项目,就像创建一个普通的python项目一样,或者是打开一个空的文件的方式创建,否则debug=True会无效

四种开启debug的方式

第一种: 

from flask import Flask
app = Flask(__name__)


@app.route('/')
def hello():
    return 'hello world'


if __name__ == '__main__':
    app.run(debug=True)  # debug 设置

 

第二种:

from flask import Flask
app = Flask(__name__)
app.debug = True  # 设置

@app.route('/')
def hello():
    a = [1,2,3,4]
    print(a[4])
    return "hello"

if __name__ == '__main__':
    app.run()

 

第三种:

from flask import Flask
app = Flask(__name__)
app.config.update(DEBUG=True)  # 设置

@app.route('/')
def hello():
    a = [1,2,3,4]
    print(a[4])
    return "hello"

if __name__ == '__main__':
    app.run()

 

第四种:

需要在app.py所在的目录里再创建一个config.py,随着项目的创建不免会有大量的配置文件,来配置我们的项目,注意配置的信息一般为大写

config.py

DEBUG = True

 

app.py

from flask import Flask
import config  # 导入
app = Flask(__name__)

app.config.from_object(config)  # 设置

@app.route('/')
def hello():
    a = [1,2,3,4]
    print(a[4])
    return "hello"

if __name__ == '__main__':
    app.run()

 

 

 

posted @ 2019-11-10 16:33  python黑客编程  阅读(200)  评论(0编辑  收藏  举报