Flask:初识;简单使用;Werkzeug简介;Flask四剑客;配置文件

一 Flask初识

参考链接:https://www.cnblogs.com/xiaoyuanqujing/articles/11643999.html#_label0

1.什么是Flask:

  flask和django同步web框架,但flask是一个短小精悍的轻量级框架,它只包含基本配置默认依赖2个外部库默认依赖于2个外部库: Jinja2 模板引擎和 WSGI工具集--Werkzeug工具包。

flask默认IP端口为:http://127.0.0.1:5000/

2.安装Flask:

cmd窗口

pip3 install flask

二 Flask简单使用(fbv为例)

1.主文件app.py代码

# 1.导入模块
from flask import Flask
# 2.产生flsak对象
app = Flask(__name__) # __name__这个特殊的参数:Python会根据所处的模块来赋予__name__变量相应的值,对于我们的程序来说(app.py),这个值为app。

#2. 路由和对应函数
@app.route('/')
def hello_world():
    return 'Hello World!'

#3.运行程序
if __name__ == '__main__':
    app.run()

三 Werkzeug简介

建议链接地址:https://www.cnblogs.com/xiaoyuanqujing/articles/11643999.html#_label0

 四 Flask四剑客

1.返回字符串:return '字符串'

from flask import Flask
app=Flask(__name__)

@app.route('/')
def  index():

   #1直接返回字符串
    return  "ok1"
if __name__ == '__main__':
    app.run()
返回字符串

2.返回html页面: return render_template("html文件",k1=参数1,k2=参数2)

# 前端

# 后端
from flask import Flask,render_template
app=Flask(__name__)

@app.route('/')
def  index():
    #返回html
    name_dict={"name":"jason-gdx"}
   # 返回html页面,并携带参数时参数格式要为:k=v
    return render_template("index.html",name="jason-gdx",name_dict=name_dict)

# 前端templates文件夹中html文件

注意:传入前端的数据如字典列表注意取值方式和python中相似

#1.for循环字典
{% for k,v in user_dict.items() %}

#2.
{{k}}
#3.字典取值
{{v.name}}
{{v['name']}}
{{v.get('name')}}

#4.列表
{{ls[0]}}
{{ls.0}}

#3.if判断
        {% if name %}
          <h1>Hello {{ name }}!</h1>
        {% else %}
          <h1>Hello World!</h1>
        {% endif %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
{{info}}
{{info.name}}
{{info['name']}}
{{info.get('name')}}

</body>
</html>

3.路由跳转:return redirect("路由地址")

from flask import Flask,redirect

app=Flask(__name__)

@app.route('/')
def  index():
    # 跳转页面
    return redirect("/login")

4.返回json字符串

from flask import Flask,jsonify
app=Flask(__name__)


@app.route('/')
def  index():

    #返回json数据
    name_dict = [{'name': "jason-gdx"},{'name': "tank-sb"}]
    return  jsonify(name_dict)
返回json数据

五 配置文件

flask中的配置文件是一个flask.config.Config对象(继承字典),默认配置为:

 {
        'DEBUG':                                get_debug_flag(default=False),  是否开启Debug模式
        'TESTING':                              False,                          是否开启测试模式
        'PROPAGATE_EXCEPTIONS':                 None,                          
        'PRESERVE_CONTEXT_ON_EXCEPTION':        None,
        'SECRET_KEY':                           None,
        'PERMANENT_SESSION_LIFETIME':           timedelta(days=31),
        'USE_X_SENDFILE':                       False,
        'LOGGER_NAME':                          None,
        'LOGGER_HANDLER_POLICY':               'always',
        'SERVER_NAME':                          None,
        'APPLICATION_ROOT':                     None,
        'SESSION_COOKIE_NAME':                  'session',
        'SESSION_COOKIE_DOMAIN':                None,
        'SESSION_COOKIE_PATH':                  None,
        'SESSION_COOKIE_HTTPONLY':              True,
        'SESSION_COOKIE_SECURE':                False,
        'SESSION_REFRESH_EACH_REQUEST':         True,
        'MAX_CONTENT_LENGTH':                   None,
        'SEND_FILE_MAX_AGE_DEFAULT':            timedelta(hours=12),
        'TRAP_BAD_REQUEST_ERRORS':              False,
        'TRAP_HTTP_EXCEPTIONS':                 False,
        'EXPLAIN_TEMPLATE_LOADING':             False,
        'PREFERRED_URL_SCHEME':                 'http',
        'JSON_AS_ASCII':                        True,
        'JSON_SORT_KEYS':                       True,
        'JSONIFY_PRETTYPRINT_REGULAR':          True,
        'JSONIFY_MIMETYPE':                     'application/json',
        'TEMPLATES_AUTO_RELOAD':                None,
    }

详解DEBUG模式和四种配置使用方式

详情链接:https://www.cnblogs.com/xiaoyuanqujing/articles/11643999.html

1.DEBUG模式2个作用

  1. flask代码中如果出现了异常,我们在浏览器中不会提示具体的错误信息,开启debug模式后会把具体的错误信息发送到浏览器上。

  2. flask代码如果被修改了,必须要重启项目修改的代码才会有效,开启debug模式后我们修改了代码只要ctrl+s我们的flask项目就会自动重新加载,不需要手动加载整个网站

开启示例(多种方式)

from flask import Flask
app = Flask(__name__)

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

    return "hello"

if __name__ == '__main__':
    app.run(debug=True)
V开启debug示例之一

2.种配置使用方式(以debug为例)

from  flask import Flask
app=Flask(__name__)

#配置文件1,这中方式只能配置两种
app.debug=True
app.secret_key="123123"

#第二种,以字典的形式
app.config['DEBUG']=True

#第三种,以文件的形式:app.config.from_pyfile("文件名")
app.config.from_pyfile("settings.py")

#settings.py文件代码
DEBUG = True

#第四种以类的形式(推荐):app.config.from_object('类的路径')
app.config.from_object('settings.DevelopmentConfig')

#settings.py文件中类
class DevelopmentConfig(Config):
    DEBUG = True
原文地址:https://www.cnblogs.com/tfzz/p/11837482.html