zoukankan      html  css  js  c++  java
  • Flask 系列之 Bootstrap-Flask

    说明

    • 操作系统:Windows 10
    • Python 版本:3.7x
    • 虚拟环境管理器:virtualenv
    • 代码编辑器:VS Code

    实验目标

    通过使用 Bootstrap-Flask 来进行页面美化,为网站应用上 Bootstrap4.x 的样式。

    由于 Flask-Bootstrap 很久没有更新,并且不支持 BS4,所以这里我们使用支持 BS4 的 Bootstrap-Flask 来进行界面美化

    安装

    pip install bootstrap-flask
    

    使用

    修改 todolistapp\__init__.py 文件,示例代码如下所示

    from flask import Flask
    from flask_sqlalchemy import SQLAlchemy
    from flask_bootstrap import Bootstrap
    from config import Config
    
    app = Flask(__name__)
    app.config.from_object(Config)
    db = SQLAlchemy(app)
    bootstrap = Bootstrap(app)
    
    from app import views
    

    todolistapp 目录下创建 views.py 文件,示例代码如下所示:

    from app import app
    from flask import render_template
    
    
    @app.route('/')
    @app.route('/index')
    def index():
        return render_template('index.html', title="首页")
    
    
    @app.route('/login')
    def login():
        return render_template('login.html', title='登录')
    
    
    @app.route('/register')
    def register():
        return render_template('register.html', title='注册')
    

    todolist emplates 目录下创建一个 nav.html 文件,示例代码如下所示:

    <nav class="navbar navbar-expand-lg navbar-light bg-light">
        <div class="container">
            <a class="navbar-brand" href="#">愿望清单</a>
    
            <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
                    <span class="navbar-toggler-icon"></span>
                  </button>
    
            <div class="collapse navbar-collapse" id="navbarSupportedContent">
                <ul class="navbar-nav mr-auto">
                    <li class="nav-item {% if request.endpoint == 'index' %} active {% endif %}">
                        <a class="nav-link" href="{{ url_for('index') }}">首页<span class="sr-only">(current)</span></a>
                    </li>
                </ul>
    
                <ul class="navbar-nav">
                    <li class="nav-item {% if request.endpoint == 'login' %} active {% endif %}">
                        <a class="nav-link" href="{{ url_for('login') }}">登录</a>
                    </li>
                    <li class="nav-item {% if request.endpoint == 'register' %} active {% endif %}">
                        <a class="nav-link" href="{{ url_for('register') }}">注册</a>
                    </li>
                </ul>
            </div>
        </div>
    </nav>
    

    todolist emplates 目录下创建一个 login.html 文件,示例代码如下所示:

    {% extends 'base.html' %} {% block content %}
    <h1>登录页面</h1>
    {% endblock %}
    

    todolist emplates 目录下创建一个 register.html 文件,示例代码如下所示:

    {% extends 'base.html' %} {% block content %}
    <h1>注册页面</h1>
    {% endblock %}
    

    修改 todolist emplatesindex.html,示例代码如下所示

    {% extends 'base.html' %} {% block content %}
    <h1>首页</h1>
    {% endblock %}
    

    todoliststatic 目录下添加一个网站的 ico 格式 图片资源 ,取名 favicon.ico

    修改 todolist emplatesase.html,示例代码如下所示

    <!doctype html>
    <html lang="en">
    
    <head>
        {% block head %}
        <!-- Required meta tags -->
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> {% block styles %}
        <!-- Bootstrap CSS -->
        <link rel="icon" href="{{ url_for('static', filename='favicon.ico') }}"> {{ bootstrap.load_css() }} {% endblock %} {% if title %}
        <title>{{title}}</title>
        {% else %}
        <title>愿望清单</title>
        {% endif %} {% endblock %}
    </head>
    
    <body>
    
        {% include "nav.html" %}
    
        <div class="container">
            <!-- Your page contont -->
            {% block content %}{% endblock%}
        </div>
    
        {% block scripts %}
        <!-- Optional JavaScript -->
        {{ bootstrap.load_js() }} {% endblock %}
    
    </body>
    
    </html>
    

    此时,打开当前项目的 shell 窗口,执行 python manage.py 即可看到 Bootstrap4 的样式已经被应用到我们的网站页面上了。

    参考

  • 相关阅读:
    leetcode 48. Rotate Image
    leetcode 203. Remove Linked List Elements 、83. Remove Duplicates from Sorted List 、82. Remove Duplicates from Sorted List II(剑指offer57 删除链表中重复的结点) 、26/80. Remove Duplicates from Sorted ArrayI、II
    leetcode 263. Ugly Number 、264. Ugly Number II 、313. Super Ugly Number 、204. Count Primes
    leetcode 58. Length of Last Word
    安卓操作的一些问题解决
    leetcode 378. Kth Smallest Element in a Sorted Matrix
    android studio Gradle Build速度加快方法
    禁用gridview,listview回弹或下拉悬停
    Android Studio找不到FragmentActivity类
    安卓获取ListView、GridView等滚动的距离(高度)
  • 原文地址:https://www.cnblogs.com/hippieZhou/p/10593552.html
Copyright © 2011-2022 走看看