补充flask基础

自己创建一个SQLHelper

import db_conn

import pymysql

def open_conn():

    conn = db_conn.POOL.connection()

    cur = conn.cursor(pymysql.cursors.DictCursor)

    return conn,cur

def close_conn(cur,conn):

    cur.close()

    conn.close()

def select_all(sql,arg):

    conn,cur = open_conn()

    cur.execute(sql,arg)

    res_list = cur.fetchall()

    close_conn(cur, conn)

    return res_list

def insert_help(sql,arg):

    conn, cur = open_conn()

    cur.execute(sql,arg)

    res = conn.commit()

    close_conn(cur, conn)

    return res

昨日回顾:

1.创建Flask实例 第一Hello

from flask import Flask

app=Flask(__name__,static_folder=,static_url_path,templates_folder=)

@app.route("/",methods=["GET","POST"],endpoint="comeonbaby",strict_slashes=False)

def index():

return HelloOldBoyEDU

app.run()

2.static_folder 静态文件存放路径 static

static_url_path, URL访问静态文件路径 /static

templates_folder 模板存放路径 templates

蓝图中也可以使用以上配置

3.应用配置

app.DEBUG = True

app.secret_key = "xxxx"

app.config.from_object("setting.FlaskSetting")

setting.py:

class FlaskSetting(object):

DEBUG = True,

secret_key = "xxxx"

4.路由系统

访问路径:"/"

methods: 允许当前访问地址的请求方式,默认GET ,["POST"]

endpoint: 反向地址索引

strict_slashes : False结尾可以为 "/"  True 不可以

<int:nid> : 动态参数路由,指定了数据类型,只要不符合要求,就不会进入当前视图 def index(nid)

unexpected keyword argument 'nid'

defaults :路由默认参数 {k1:v1} def index(k1)

5. HttpResponse : return "hello"

render_template : return render_template("index.html") 

redirect : return redirect("/index")

以上三剑客必须,从flask中导入

6.request : 导入方式

request.from : post 方式提交通常情况

request.args : GET 方式请求url参数

request.files: POST提交的FormData 中带有file

request.method : 请求的方式

request.path(类) : url相关 , 路径相关

request.json : application/json 数据头

request.data :无数据头或数据头不被认可

request.headers :请求头信息

request.values : to_dict 坑 GET 覆盖 POST

request.cookies: 获取浏览器cookie

7.Flask中的Jinja2

for {% for i in list %} {% endfor %}

if {% if 条件 %} {% elif %} {% else %} {% endif %}

list[0] list.0

dict.key dict[key] dict.get(key)

|safe Markup 安全字符串

@app.template_global()

def a_b(a,b)

@app.template_filter()

def a_b(a,b)

1|a_b(2)

{% block content %}

{% endblock %}

include

{% marco func(a) %}

{% endmacro %}

8.session: app.secret_key="xxx"

9.蓝图(Blueprint)

lu = Blueprint("lu",__name__,初始化配置)

@lu.route("/lu")

def lus()

app.register_blueprint(Blueprint.lu)

10. before_request after_requst before_frist_request errorheadler(404)

before_request : 请求之前做处理,比如methods的请求方法

after_requst : 视图函数返回后做处理

before_frist_request : 第一次请求之前做处理

errorheadler : 定义错误信息 def error_page(error_massage)

11. flash 导入

flash("message")

get_flashed_messages() 导入

一存放,一提取,消失

原文地址:https://www.cnblogs.com/maojiang/p/9518021.html