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. [leetcode]143. Reorder List重排链表

    Given a singly linked list L: L0→L1→…→Ln-1→Ln,reorder it to: L0→Ln→L1→Ln-1→L2→Ln-2→… You may not mod ...

  2. 8-导弹拦截一(n^2 and nlogn)

    /*某国为了防御敌国的导弹袭击,研发出一套导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发拦截炮弹能够到达任意的高度,但是以后每一发拦截炮弹都不能高于前一发的高度.某天,雷达捕捉到敌国的多 ...

  3. 零基础学习hadoop到上手工作线路指导(初级篇)

    零基础学习hadoop,没有想象的那么困难,也没有想象的那么容易.在刚接触云计算,曾经想过培训,但是培训机构的选择就让我很纠结.所以索性就自己学习了.整个过程整理一下,给大家参考,欢迎讨论,共同学习. ...

  4. Python 安装路径, dist-packages 和 site-packages 区别

    Stack Overflow's answer 译: dist-packages is a Debian-specific convention that is also present in its ...

  5. Spring框架之log日志的使用

    1.Spring框架也需要引入日志相关的jar包 * 在spring-framework-3.0.2.RELEASE-dependencies/org.apache.commons/com.sprin ...

  6. mysql只保留一条有效数据,删除其他重复的数据

    delete from TableName where id in( SELECT ID FROM(SELECT * FROM TableName t0WHERE(t0.Field1,t0.Field ...

  7. php调用C#写的dll包

    1.转到需要注册的dll路径下 2.输入regasm命令+文件名 3问题解决

  8. c++11 stl 学习之 pair

    pair以模板的方式存储两个数据 namespace std {template <typename T1, typename T2>struct pair {// memberT1 fi ...

  9. Hadoop 1: NCDC 数据准备

    本文介绍Hadoop- The Definitive Guide一书中的NCDC数据准备,为后面的学习构建大数据环境; 环境 3节点 Hadoop 2.7.3 集群; java version &qu ...

  10. [开源,学习,分享]UWP第三方简书客户端分享

    简介 Windows10正式版发布到现在,我利用零零碎碎的一些时间对UWP进行一些学习,也基于这门技术开发了一个第三方的简书App. 基本界面 优酷视频: http://v.youku.com/v_s ...