专栏首页sktjflask 切换主题实例(flask 66)

flask 切换主题实例(flask 66)

settings.py中添加主题键值

FLASKBLOG_THEMES = {'perfect_blue': 'Perfect Blue', 'black_swan': 'Black Swan'}
FLASKBLOG_SLOW_QUERY_THRESHOLD = 1

app.py 载入

from settings import config

app = Flask(name) app.config.from_object(config[config_name])

views.py 中添加改变主题的函数

def redirect_back(default='blog.index', **kwargs): for target in request.args.get('next'), request.referrer: if not target: continue if is_safe_url(target): return redirect(target) return redirect(url_for(default, **kwargs))

@blog_bp.route('/change-theme/<theme_name>') def change_cheme(theme_name): if theme_name not in current_app.config['FLASKBLOG_THEMES'].keys(): abort(404)

response=make_response(redirect_back())
response.set_cookie('theme',theme_name,max_age=30*24*60*60)
return response

html中添加

在head中添加动态主题的链接

<link rel="stylesheet" href="{{ url_for('static',filename='css/%s.min.css' % request.cookies.get('theme','perfect_blue')) }}" type="text/css">

页面中添加改变主题的按钮:

<div class="dropdown"> <button class="btn btn-default dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> Change Theme </button> <div class="dropdown-menu" aria-labelledby="dropdownMenuButton"> {% for theme_name, display_name in config.FLASHBLOG_THEMES.items() %} <a class="dropdown-item" href="{{ url_for('blog.change_theme', theme_name=theme_name, next=request.full_path) }}"> {{ display_name }}</a> {% endfor %} </div> </div>

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 使用类型注解让 Python 代码更易读

    我们知道 Python 是一种动态语言,在声明一个变量时我们不需要显式地声明它的类型,例如下面的例子:

    崔庆才
  • Qt Socket传输图片(一)

    上次简单实现了python发送和接收图片的Demo,本次通Qt的接收图片,并显示在QLabel上。

    用户5908113
  • 从零开始系统化的学习写Python爬虫

    主要是记录一下自己写Python爬虫的经过与心得。 同时也是为了分享一下如何能更高效率的学习写爬虫。 IDE:Vscode Python版本: 3.6

    HACK学习
  • 数据可视化-Matplotlib在线图上填充区域

    今天我们将学习如何填充Matplotlib中的线图。这不仅可以使我们的图表看起来更专业,而且我们还可以通过根据特定阈值填充区域来添加有用信息。

    亚乐记
  • 常见 Python 代码优化技巧

    代码优化能够让程序运行更快,它是在不改变程序运行结果的情况下使得程序的运行效率更高,根据 80/20 原则,实现程序的重构、优化、扩展以及文档相关的事情通常需要...

    昱良
  • 边玩游戏边学编程,怎么做到的?!

    经常听到有朋友说,学习编程是一件非常枯燥无味的事情。其实,大家有没有认真想过,可能是我们的学习方法不对?

    GitHubDaily
  • 用python“科学”预测下《哪吒》票房

    最近几天,朋友圈和微博被《哪吒之魔童降世》刷屏了。不少看过的朋友都成为“自来水”,力荐此片。

    Crossin先生
  • 推荐一个内网渗透扫描神器

    Perun是一款主要适用于乙方安服、渗透测试人员和甲方RedTeam红队人员的网络资产漏洞扫描器/扫描框架,它主要适用于内网环境,加载漏洞检测Vuln模块后能够...

    HACK学习
  • 会 Python 就能年薪 40w?答案早就写在 JD 上了...

    现在的职场竞争越来越激烈,不学上一两门新技能,保持自己知识更新,很容易被年轻后辈超越。有些人选择学一门外语,有些人选择学习职场上为人处事的能力。

    崔庆才
  • Python Socket传输图片

    我们在传输数据时,经常使用tcp/ip的服务器和客户端模型,很多设备也经常将网口作为硬件接口预留出来。可以使用tcp/ip传输图像、大的文件等,如果图片过大,还...

    用户5908113

扫码关注云+社区

领取腾讯云代金券