Flask

版本

flask版本:1.1.4
jinjia2版本:2.11.3
flask-script版本:2.0.6
flask-blueprint版本:1.3.0
flask-bootstrap版本:3.3.7.1

文档

flask英文文档:https://flask.palletsprojects.com/en/1.1.x/
flask中文文档:https://dormousehole.readthedocs.io/en/1.1.2/
jinja2英文文档:https://jinja.palletsprojects.com/en/3.0.x/
flask-bootstrap中文文档:https://flask-bootstrap-zh.readthedocs.io/zh/latest/
bootstrap3组件文档:https://v3.bootcss.com/components/

flask-script

a) 安装flask-script

安装最新:pip install flask-script

安装指定版本:pip install flask-script==2.0.6

在这里插入图片描述

b) 修改app.py

from flask import Flask
from flask_script import Manager

app = Flask(__name__)

manager = Manager(app=app)

@app.route('/')
def hello_world():
    return 'Hello World!'

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

在这里插入图片描述

c) 运行

python app.py runserver -r -d

默认127.0.0.1:5000访问,可以指定端口号,及外网ip来进行访问:
python app.py runserver -r -d --port 80 --host 0.0.0.0

在这里插入图片描述

d) 浏览器访问

在这里插入图片描述

蓝图 flask-blueprint

a) 安装flask-blueprint

pip install flask-blueprint

b) 创建route.py

from flask import Blueprint

blue = Blueprint('blue', __name__)

@blue.route('/')
def hello_world():
    return 'Hello World!'

@blue.route('/index/')
def index():
    return 'Hello Index!'

在这里插入图片描述

c) 修改app.py

from flask import Flask
from flask_script import Manager
from route import blue

app = Flask(__name__)

app.register_blueprint(blueprint=blue)

manager = Manager(app=app)

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

d) 访问

在这里插入图片描述

render_template

a1) 创建home.html

在这里插入图片描述

a2) 修改route.py

在这里插入图片描述

a3) 访问

在这里插入图片描述

b1) 修改route.py,传递数据,如字符串等

在这里插入图片描述

b2) home.html 中接收数据

在这里插入图片描述

b3) 访问

在这里插入图片描述

url_for、redirect

a) 修改route.py

在这里插入图片描述

b) 访问

http://127.0.0.1:5000
跳转至:
http://127.0.0.1:5000/home/

在这里插入图片描述

<a>标签跳转

从home跳转到 hello_world
在这里插入图片描述
在这里插入图片描述

request

a) 添加/获取/删除Cookie

from flask import Blueprint
from flask import render_template
from flask import Response, request, redirect, url_for

blue = Blueprint('blue', __name__)

@blue.route('/')
def hello_world():
    return 'index'

@blue.route('/setCookie/')
def setCookie():
    rsp = Response('set cookie, 21')
    rsp.set_cookie('myCookie', '21')
    return rsp

@blue.route('/getCookie/')
def getCookie():
    myCookie = request.cookies.get('myCookie')
    return 'cookie is {}'.format(myCookie)

@blue.route('/deleteCookie/')
def deleteCookie():
    rsp = redirect(url_for('blue.hello_world'))
    rsp.delete_cookie('myCookie')
    return rsp

b) 添加/获取/删除Session

app.py
在这里插入图片描述
route.py
在这里插入图片描述

c) method (GET POST…) \ form表单提交

login.html
在这里插入图片描述
route.py
在这里插入图片描述

jinja2模板

{%  %} 控制语句,如 
    {% if data == 'name' %}
        {{ data }}
    {% else %}
        {{ data }}
    {% endif %}
    
{{  }} 变量,如 {{ data }}

{#  #} 注释,如 {# data is xxxx! #}

a) 传递字符串

在这里插入图片描述
在这里插入图片描述

b) 传递列表 - for 循环

在这里插入图片描述

for 遍历

在这里插入图片描述

根据索引取值

在这里插入图片描述

c) if 判断

在这里插入图片描述

d) set 设置变量

在这里插入图片描述

e) extends html引入html

base.html
在这里插入图片描述
home.html
在这里插入图片描述

f) 宏 macro

定义一个宏 macro
在这里插入图片描述
引入宏
在这里插入图片描述

g) 获取长度

如获取字典的长度

{% set number = data['groupNum'] | length %}

bootstrap

a) 安装flask-bootstrap

pip install flask-bootstrap

b) 引入

在这里插入图片描述

c) 使用bootstrap

在这里插入图片描述

自定义css

创建home.css

在这里插入图片描述

home.html引用css

{% extends "bootstrap/base.html" %}

{% block styles %}
    {{ super() }}
    <link rel="stylesheet" href="{{ url_for('static', filename='home.css') }}">
{% endblock %}

{% block content %}
    <h2>hello</h2>
    <h3>flask</h3>
{% endblock %}

在这里插入图片描述

自定义JS

创建js

$("#test_id").click(function(){
     alert('test!test!')
});

在这里插入图片描述

引入js

{% extends "bootstrap/base.html" %}

{% block scripts %}
    {{super()}}
    <script src="{{url_for('static', filename='home.js')}}"></script>
{% endblock %}

{% block content %}
    <button id="test_id">click</button>
{% endblock %}

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值