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 的样式已经被应用到我们的网站页面上了。

    参考

  • 相关阅读:
    公布一些常用的WebServices
    ARM的嵌入式Linux应用程序开发研究
    c++读写剪贴板代码
    如何破解路由器密码(CISCO)!
    用Shell扩展实现源代码统计程序(转)
    图文例解C++类的多重继承与虚拟继承
    MSDN上关于ADO示例代码
    不错的句子
    codeforces #271(div2) F. Ant colony
    [Z]CUDA中Bank conflict冲突
  • 原文地址:https://www.cnblogs.com/hippieZhou/p/10593552.html
Copyright © 2011-2022 走看看