Flask 视图,模板,蓝图.
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 视图,模板,蓝图.的更多相关文章
- Flask视图函数与模板语法
1.Django中的CBV模式 2.Flask中的CBV和FBV def auth(func): def inner(*args, **kwargs): result = ...
- 第九篇 Flask 中的蓝图(BluePrint)
第九篇 Flask 中的蓝图(BluePrint) 蓝图,听起来就是一个很宏伟的东西 在Flask中的蓝图 blueprint 也是非常宏伟的 它的作用就是将 功能 与 主服务 分开怎么理解呢? ...
- python框架之Flask(3)-Blueprint(蓝图)
蓝图 用途 给开发者提供清晰的目录结构. 使用 目录结构 1.创建项目. 2.在项目目录下创建与项目名同名文件夹. 3.在 test_prj 文件夹下创建 __init__.py 文件,并在其中实例化 ...
- Flask最强攻略 - 跟DragonFire学Flask - 第九篇 Flask 中的蓝图(BluePrint)
蓝图,听起来就是一个很宏伟的东西 在Flask中的蓝图 blueprint 也是非常宏伟的 它的作用就是将 功能 与 主服务 分开怎么理解呢? 比如说,你有一个客户管理系统,最开始的时候,只有一个查看 ...
- python 全栈开发,Day120(路由系统, 实例化Flask的参数, 蓝图(BluePrint), before_request after_request)
昨日内容回顾 1.Flask: from flask import Flask app = Flask(__name__) # 从源码中可以看出,Flask集成的run方法是由werkzeug中的ru ...
- flask中的蓝图与红图
内容: 1.flask中的蓝图 2.flask子域名实现 3.flask中的红图 1.flask中的蓝图 一个大型项目中视图比较多,如果仅仅是写在app.py中不方便管理,蓝图就可以做到分功能分目录结 ...
- flask中的蓝图实现模块化的应用
Blueprint 蓝图的基本设想是当它们注册到应用上时,它们记录将会被执行的操作. 当分派请求和生成从一个端点到另一个的 URL 时,Flask 会关联蓝图中的视图函数. 简单来说,Blueprin ...
- 9,Flask 中的蓝图(BluePrint)
蓝图,听起来就是一个很宏伟的东西,在Flask中的蓝图 blueprint 也是非常宏伟的,它的作用就是将 功能 与 主服务 分开. 比如说,你有一个客户管理系统,最开始的时候,只有一个查看客户列表的 ...
- flask中的蓝图(BluePrint)
蓝图,听起来就是一个很宏伟的东西 在Flask中的蓝图 blueprint 也是非常宏伟的 它的作用就是将 功能 与 主服务 分开怎么理解呢? 比如说,你有一个客户管理系统,最开始的时候,只有一个查看 ...
- flask 第九篇 蓝图 Blueprint
蓝图,听起来就是一个很宏伟的东西 在Flask中的蓝图 blueprint 也是非常宏伟的 它的作用就是将 功能 与 主服务 分开怎么理解呢? 比如说,你有一个客户管理系统,最开始的时候,只有一个查看 ...
随机推荐
- 7-找了一上午的BUG
#include <iostream>#include <cstring>#include <algorithm>#define MAX 1<<28;u ...
- Redis安装异常解决办法
官网地址:http://redis.io/ 官网下载地址:http://redis.io/download 1. 下载Redis源码(tar.gz),并上传到Linux 2. 解压缩包:tar zxv ...
- php加速缓存器opcache,apc,xcache,eAccelerator
一.opcache opcache 通过将 PHP 脚本预编译的字节码存储到共享内存中来提升 PHP 的性能, 存储预编译字节码的好处就是 省去了每次加载和解析 PHP 脚本的开销. PHP 5. ...
- 解决 Ubuntu 下 sudo 命令执行速度慢的问题
1.首先如果当用登录的用户名不在"/etc/sudoers"文件中,是不能执行sudo命令的.可以用root身份手动修该文件,把当前登录用户名加入该文件中. 2.用"ho ...
- Jmeter如何把CSV文件的路径设置成一个变量,且变量的值是一个相对路径
首先,在Jmeter中,通过User Defined Variables设置一个变量用来存储CSV文件所在文件夹的相对路径 备注: 这个相对路径前面不要加.\ 加了的话在运行的时候会报错,提示找不到那 ...
- 深入浅出 JMS(三) - ActiveMQ 安全机制
深入浅出 JMS(三) - ActiveMQ 安全机制 一.认证 认证(Authentication):验证某个实体或者用户是否有权限访问受保护资源. MQ 提供两种插件用于权限认证: (一).Sim ...
- jetty无法即时更新html、js、css等静态文件的解决办法
网上搜了一大堆方法.最常见的是找到jetty\etc\webdefault.xml文件,找到useFileMappedBuffer参数,把true改为false <init-param> ...
- 小程序getUserInfo授权升级更新登录优化
小程序基础库2.0.7更新小程序组件 <button> 新增 open-type 属性有效值 openSetting,所以说,再也不能愉快的直接调用getUserInfo了.但是不想用官方 ...
- 2018.09.11 poj2976Dropping tests(01分数规划)
传送门 01分数规划板子题啊. 就是简单变形移项就行了. 显然 ∑i=1na[i]∑i=1nb[i]≤k" role="presentation" style=" ...
- 2018.09.05 任务安排(斜率优化dp)
描述 这道题目说的是,给出了n项必须按照顺序完成的任务,每项任务有它需要占用机器的时间和价值.现在我们有一台机器可以使用,它每次可以完成一批任务,完成这批任务所需的时间为一个启动机器的时间S加上所有任 ...
