https://www.cnblogs.com/wupeiqi/articles/7552008.html

1. 配置文件

from  flask import Flask
app =Flask(__name__)
# app.secret_key="addd"
# app.debug=True
app.config.from_object("settings.ProductionConfig") #引入settings文件.

print(app.config["DEBUG"])

@app.route("/index")
def index():
return "index" if __name__ =="__main__":
app.run()

打印结果为

False

settings 文件

SECRET_KEY ="SDADFADF"
DEBUG=True class Config(object):
DEBUG=True
SECRET_KEY="ADFADF" class ProductionConfig(Config):
DEBUG=False class TestingConfig(Config):
Testing= True

2.路由

endpoint

@app.route("/order",endpoint="n2")
def order():
print(url_for("n2"))
print(url_for("n2"))
return "user" if __name__ =="__main__":
app.run()

  输出结果:

127.0.0.1 - - [/Sep/ ::] "GET /order HTTP/1.1"  -
/order
/order

不写endpoint 默认是他的函数名称。


@app.route("/index")  #默认传递字符串类型
def index(nid,num):
print(nid)
return "index" @app.route("/order")
def order():
print(url_for("order"))
print(url_for("index"))
print(url_for("index"))
return "user"
@app.route("/xx1111",)
def xx():
print(url_for("xx"))
print(url_for("index"))
print(url_for("order"))
return "user"

打印结果:

127.0.0.1 - - [/Sep/ ::] "GET /xx1111 HTTP/1.1"  -
/xx1111
/index
/order

marksafe功能:

全局功能:

flash

蓝图

设置.

from flask import Flask
from .views.account import bpaccount
from .views.code import bpcode
app = Flask(__name__)
app.config.from_object("settings.TestingConfig") def create_app():
app=Flask(__name__)
app.config.from_object("settings.DevelopmentConfig") app.register_blueprint(bpaccount)
app.register_blueprint(bpcode)
return app

settings

class Config(object):
DEBUG =False
SECRET_KEY="ADAFA"
class ProductionConfig(Config):
DEBUG = False class DevelopmentConfig(Config):
DEBUG = False class TestingConfig(Config):
TESTING=True

manage

from zzy import create_app
app =create_app()
if __name__ == '__main__':
app.run()

  

code 视图

from flask import  Blueprint
bpcode =Blueprint("whq",__name__) @bpcode.route("/code")
def hailong():
return "海龙" @bpcode.route("/lizhanqing")
def lizhanqing():
return "李占青"

account视图

from flask import  Blueprint,render_template
bpaccount =Blueprint("xzx",__name__) @bpaccount.route("/login")
def hailong():
return render_template("login.html") @bpaccount.route("/logout")
def lizhanqing():
return "登出"

login.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1> 用户登录</h1> </body>
</html>

before request 有app级别的,也有蓝图级别的

先说app级别的:

from flask import Flask,session,request,redirect
from .views.account import bpaccount
from .views.code import bpcode
app = Flask(__name__)
app.config.from_object("settings.TestingConfig") def auth():
if request.path=="/login":
return None
user_info =session.get("user_info")
if user_info:
return None return redirect("/login") def create_app():
print(66666666666)
app=Flask(__name__)
app.config.from_object("settings.DevelopmentConfig") app.register_blueprint(bpaccount)
app.register_blueprint(bpcode) app.before_request(auth)
# app级别的在登录
# @app.before_request
# def check_login():
# print("checklogin")
return app

  

蓝图级别的

account 视图

from flask import  Blueprint,render_template
bpaccount =Blueprint("xzx",__name__)

@bpaccount.before_request
def check_login():
print("before request")
@bpaccount.route("/login")
def hailong():
return render_template("login.html")

  

code视图

from flask import  Blueprint
bpcode =Blueprint("whq",__name__) @bpcode.before_request
def check_login():
print(
"before1111111111check") @bpcode.route("/code")
def hailong():
return "海龙"

1. 蓝图做目录结构的划分。

2.蓝图中应用before_request应用

3.蓝图做url的划分.

url_prefix url前添加前缀  有点像Django的include

 app.register_blueprint(bpaccount,url_prefix="/user")
app.register_blueprint(bpcode,url_prefix="/user")

url_for 反向解析,像是django的revers

from flask import  Blueprint,render_template,url_for
bpaccount =Blueprint("xzx",__name__) @bpaccount.before_request
def check_login():
print("before request") @bpaccount.route("/login")
def hailong():
print(url_for("xzx.hailong"))
print(url_for("xzx.lizhanqing"))
print(url_for("whq.hailong"))
return render_template("login.html") @bpaccount.route("/logout")
def lizhanqing():
return "登出"

结果:

/login
/logout
/code

staticfiles and templates

Flask 视图,模板,蓝图.的更多相关文章

  1. Flask视图函数与模板语法

    1.Django中的CBV模式 ​ 2.Flask中的CBV和FBV def auth(func):     def inner(*args, **kwargs):         result =  ...

  2. 第九篇 Flask 中的蓝图(BluePrint)

    第九篇 Flask 中的蓝图(BluePrint)   蓝图,听起来就是一个很宏伟的东西 在Flask中的蓝图 blueprint 也是非常宏伟的 它的作用就是将 功能 与 主服务 分开怎么理解呢? ...

  3. python框架之Flask(3)-Blueprint(蓝图)

    蓝图 用途 给开发者提供清晰的目录结构. 使用 目录结构 1.创建项目. 2.在项目目录下创建与项目名同名文件夹. 3.在 test_prj 文件夹下创建 __init__.py 文件,并在其中实例化 ...

  4. Flask最强攻略 - 跟DragonFire学Flask - 第九篇 Flask 中的蓝图(BluePrint)

    蓝图,听起来就是一个很宏伟的东西 在Flask中的蓝图 blueprint 也是非常宏伟的 它的作用就是将 功能 与 主服务 分开怎么理解呢? 比如说,你有一个客户管理系统,最开始的时候,只有一个查看 ...

  5. python 全栈开发,Day120(路由系统, 实例化Flask的参数, 蓝图(BluePrint), before_request after_request)

    昨日内容回顾 1.Flask: from flask import Flask app = Flask(__name__) # 从源码中可以看出,Flask集成的run方法是由werkzeug中的ru ...

  6. flask中的蓝图与红图

    内容: 1.flask中的蓝图 2.flask子域名实现 3.flask中的红图 1.flask中的蓝图 一个大型项目中视图比较多,如果仅仅是写在app.py中不方便管理,蓝图就可以做到分功能分目录结 ...

  7. flask中的蓝图实现模块化的应用

    Blueprint 蓝图的基本设想是当它们注册到应用上时,它们记录将会被执行的操作. 当分派请求和生成从一个端点到另一个的 URL 时,Flask 会关联蓝图中的视图函数. 简单来说,Blueprin ...

  8. 9,Flask 中的蓝图(BluePrint)

    蓝图,听起来就是一个很宏伟的东西,在Flask中的蓝图 blueprint 也是非常宏伟的,它的作用就是将 功能 与 主服务 分开. 比如说,你有一个客户管理系统,最开始的时候,只有一个查看客户列表的 ...

  9. flask中的蓝图(BluePrint)

    蓝图,听起来就是一个很宏伟的东西 在Flask中的蓝图 blueprint 也是非常宏伟的 它的作用就是将 功能 与 主服务 分开怎么理解呢? 比如说,你有一个客户管理系统,最开始的时候,只有一个查看 ...

  10. flask 第九篇 蓝图 Blueprint

    蓝图,听起来就是一个很宏伟的东西 在Flask中的蓝图 blueprint 也是非常宏伟的 它的作用就是将 功能 与 主服务 分开怎么理解呢? 比如说,你有一个客户管理系统,最开始的时候,只有一个查看 ...

随机推荐

  1. win10下安装oracle11G Examples出错[INS-32025][INS-52001]

    安装oracle examples时提示出错:[INS-32025] 所选安装与指定 Oracle 主目录中已安装的软件冲突.[INS-52001] Oracle Database Examples ...

  2. jmeter完成数据批量添加

    Jmeter结构如图 目的: 需要在每个组织下面分别添加5个设备资源 思路: 1.先登录平台 2.进入系统配置页面 3.获取到每个区域的ID 4.在每个区域下面添加设备资源 重点及难点: 1.登录加密 ...

  3. 20172325 2017-2018-2 《Java程序设计》第九周学习总结

    20172325 2017-2018-2 <Java程序设计>第九周学习总结 教材学习内容总结 异常 1.学习了异常的基本概念: 2.区分异常与错误: 一个异常是指一个定义非正常情况或错误 ...

  4. 如何处理好前后端分离的 API 问题(转载自知乎)

    9 个月前 API 都搞不好,还怎么当程序员?如果 API 设计只是后台的活,为什么还需要前端工程师. 作为一个程序员,我讨厌那些没有文档的库.我们就好像在操纵一个黑盒一样,预期不了它的正常行为是什么 ...

  5. 项目解析1、登录验证用户是否存在 储备知识 Python 之 decorator装饰器

    下面是我对 装饰器 这一小节的总结, 以及自己的理解. 注:[本文中的代码参考上述教程] 很多时候我会把Python的很多语法与C++相融合,在C++中,函数的名称即为函数的地址,我们可以通过定义成为 ...

  6. mysql 查询表 的所有字段名称

    select COLUMN_NAME from information_schema.COLUMNS where table_name = 'your_table_name' and table_sc ...

  7. Spring 获取资源文件路径

    import org.springframework.core.io.ClassPathResource; import org.springframework.core.io.Resource; s ...

  8. WPF MediaKit的一点问题

    原版WPF MediaKit在捕获摄像头视频时,如果不使用640*480分分辨率输出,会出现NewVideoSample事件不被触发的问题. 经数日摸索,终于明白SetVideoCapturePara ...

  9. (二进制 异或)Team Formation --ZOJ --3870

    链接: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3870 http://acm.hust.edu.cn/vjudge/ ...

  10. (匹配 最小路径覆盖)Air Raid --hdu --1151

    链接: http://acm.hdu.edu.cn/showproblem.php?pid=1151 http://acm.hust.edu.cn/vjudge/contest/view.action ...