当前位置: 首页 > article >正文

Python轻量级Web框架Flask(2)——Flask模板渲染/Flask项目拆分

1、run启动参数详解:

  • debug 是否开启调试模式,开启后(debug = true)修改过python代码会自动重启,不用停止运行之后再去启动。
  • port 启动指定服务器的端口号,默认是5000。
  • host 主机,默认是127.0.0.1(只有本机可以访问),指定为0.0.0.0代表本机所有ip。

2、完整的进行一次Flask模板渲染:

  • 第一步:在pycharm专业版中新建Flask项目
    在这里插入图片描述
    上图是用来说明下图中新建文件夹下,多出来两个文件夹的作用。【注意,flask项目中py文件最好命名为app】
    在这里插入图片描述
  • 第二步:给各个文件夹中配置文件(同一个页面的css和html文件最好命名一致)
    在这里插入图片描述
  • app.py代码:
from flask import Flask, render_template

a = Flask(__name__)
'''
创建实例 第一个参数时应用模块或者包的名称 一般传输__name__,作用是让stu_2
所在的文件夹只能用于Flask项目。
'''
@a.route('/template_test/')
def temp():
    # 模板渲染
    return render_template('tem_test.html',name = 'brush_teacher')
'''
    1、这里写了这个语句不能识别就可以用“alt+回车”导入,上面import就会自动导入
    2、第一个参数是写在templates中的html文件的文件名,带后缀
    3、还可以给html中传入变量
'''
- tem_test.html代码

if __name__ == '__main__':
    a.run(debug = True) #可以不用停止py代码修改页面数据
  • tem_test.html代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
<!--  3种导入css文件的方式  -->
<!--    <link rel="stylesheet" href="../static/tem_test.css">-->
<!--    <link rel="stylesheet" href="/static/tem_test.css">-->
    <link rel="stylesheet" href="{{ url_for('static',filename='tem_test.css') }}">
</head>
<body>
<h1>这是测试template渲染的html文件</h1>
<p1>第一段,样式蓝色</p1><br>
<p2>第一段,样式红色:这里是测试render_template中的数据能否传html文件的句子:{{ name }}</p2>
</body>
</html>
  • tem_test.css代码
p1{color: blue}
p2{color: red}

3、Flask项目拆分:

  • 项目文件展示
    在这里插入图片描述

  • app.py代码

from App import creat_app

app = creat_app()


if __name__ == '__main__':
    app.run(debug=True)
  • App包中的init.py代码
# __init__.py : 初始化文件,创建Flask应用
from flask import Flask
from .views import blue

def creat_app():
    app = Flask(__name__)

    # 注册蓝图
    app.register_blueprint(blueprint=blue)

    return app

  • App包中的views.py代码
# 在views.py中放路由和视图函数

from flask import Blueprint
from .models import * #后面是用views来控制数据库的,所以要在views中导入models文件

# 蓝图
blue = Blueprint('user', __name__)

@blue.route('/')
def index():
    return 'index'
  • App包中的models.py该示例中没有用到,但是后面项目中肯定会用到。
  • 结果展示
    在这里插入图片描述
  • 说明:
    • 1、执行说明:首先程序会在app.py中开始执行,执行中第一步会将App这个包导入,然后就会执行App中的__init __.py文件,然后会在__init __.py文件导包时,去执行views.py中的代码,然后从views.py中导包时,进入到models.py中。执行完models.py的程序之后,会再次回到views.py中,执行views.py中的程序,此时就会将视图函数和路由全部都声明好,然后回到__init __.py中声明creat_app()函数,然后回到app.py中执行creat_app()函数(在执行该函数的时候才会和刚才函数中的蓝图绑定),最后才会在app.py中启动。宏观流程如下图:
      在这里插入图片描述

    • 2、蓝图介绍:
      在这里插入图片描述

  • 注意Flask项目拆分的目的是为了在写大型项目的过程中可以方便管理每个部分的代码。虽然项目拆分看着复杂,其实后面这个拆分方式就相当于模板了,用的时候直接套用即可,后面只需要在不同的项目中添加不同的插件即可。


http://www.kler.cn/a/5100.html

相关文章:

  • vue 导出excel接口请求和axios返回值blob类型处理
  • spring mvc源码学习笔记之八
  • 4 $ 符号
  • 深入讲解 Docker 及实践
  • VS2015 + OpenCV + OnnxRuntime-Cpp + YOLOv8 部署
  • 计算机网络 (23)IP层转发分组的过程
  • Intel Pin常用基础函数
  • Java设计模式-7、装饰器模式
  • 【华为OD机试真题JAVA】两个数和两数之和绝对值问题
  • BO OLAP 连接 HANA 先决条件
  • 【SSM】MyBatis(十一.MyBatis的高级映射和延迟加载)
  • 设计模式——装饰者模式
  • satellite.js库下载、介绍、安装、引用,返回函数的方法
  • chatgpt-retrieval-plugin:chatgpt检索插件简介
  • 读《刻意练习》后感,与原文好句摘抄
  • linux串口通信
  • 硬件语言Verilog HDL牛客刷题day04 序列检测部分
  • 线程安全、线程同步(同步代码块、同步方法、同步锁)
  • 【Linux】gcc/g++区别和联系
  • docker私有仓库,仓库管理器
  • 程序监控报警失败自动重启脚本
  • 【不同入参ajax请求】ajax请求接口入参form形式和body形式如何写前端代码(附源码详解)
  • Appium 自动化测试从入门到精通,零基础也能听懂
  • 掌握C语言的这3个函数,你就学会随机读写文件了
  • 二战华为成功上岸,准备了小半年,要个27k应该也算不上很高吧~
  • redis 三. hash应用场景及底层分析