• 【python3】第20章设置项目“学习笔记”的样式


    A、应用程序django-bootstrap3

    一、安装django-bootstrap3

    pip install django-bootstrap3

    二、项目中添加django-bootstrap3

    settings.py
    # django-bootstrap3的设置
    BOOTSTRAP3 = {
        'include_jquery'True,
    }
     
    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
     
        # 第三方应用程序
        'bootstrap3',
     
        # My apps
        'learning_logs',
        'users',
    ]

    B、使用Bootstrap来设置项目“学习笔记”的样式

    三、修改base.html-定义头部

    base.html
    {% load bootstrap3 %}
     
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width-device-width, initial-scale=1">
     
        <title>Learning Log</title>
        {% bootstrap_css %}
        {% bootstrap_javascript %}
    </head>
    </html>
    {% bootstrap_css %}和{% bootstrap_javascript %}为django-bootstrap3的一个自定义模板的标签,它让Django包含所有的Bootstrap样式文件

    四、修改base.html-定义导航栏

    base.html
    <body>
    <!-- Static navbar-->
    <nav class="navbar navbar-default navbar-static-top">
        <div class="container">
            <div class="navbar-header">
                <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar"
                aria-expanded="false" aria-controls="navbar"></button>
                <a class="navbar-brand" href="{% url "learning_logs:index" %}">Learning Log</a>
            </div>
             
            <div id="navbar" class="navbar-collapse collapse">
                <ul class="nav navbar-nav">
                    <li><a href="{% url "learning_logs:topics" %}">Topics</a></li>
                </ul>
                 
                <ul class="nav navbar-nav navbar-right">
                    {% if user.is_authenticated %}
                        <li><a>Hello, {{ user.username }}</a></li>
                        <li><a href="{% url "users:logout" %}"></a></li>
                    {% else %}
                        <li><a href="{% url "users:register" %}">register</a></li>
                        <li><a href="{% url "users:login" %}">log in</a></li>
                    {% endif %}
                </ul>
            </div>
        </div>
         
    </nav>
    </body>

    五、修改base.html-定义页面的主要部分

    base.html
    ...
    </nav>
     
    <div class="container">
        <div class="page-header">
            {% block header %}{% endblock %}
        </div>
        <div>
            {% block content %}{% endblock %}
        </div>
    </div<!--/container-->
     
    </body>
    </html>

    B、使用jumbotron来设置主页的样式

    六、使用jumbotron来设置主页的样式

    index.html
    {% extends "learning_logs/base.html" %}
     
    {% block header %}
        <div class="jumbotron">
            <h1>Track your learning</h1>
        </div>
    {% endblock header %}
     
    {% block content %}
        <h2>
            <a href="{% url "users:register" %}">Register an account</a> to make your own Learning Log,
            and list the topics you're learning about.
        </h2>
        <h2>Whenever you learn something new about a topic, make an entry summarizing what you've learned.</h2>
    {% endblock %}

    C、设置登陆页面的样式

    七、设置登陆页面的样式

    login.html
    {% extends "learning_logs/base.html" %}
    {% load bootstrap3 %}
     
    {% block header %}
        <h2>Log in to your account.</h2>
    {% endblock header %}
     
    {% block content %}
        <form action="{% url "users:login" %}" method="post" class="form">
            {% csrf_token %}
            {% bootstrap_form form %}
     
            {% buttons %}
                <button name="submit" class="btn btn-primary">log in</button>
            {% endbuttons %}
     
            <input type="hidden" name="text" value="{% url "learning_logs:index" %}"/>
        </form>
    {% endblock content %}
    删除了{% if form.errors %}, 因为django-bootstrap3会自动管理表单错误。这里用{% bootstrap_form %}来显示表单,这个替换了原来使用的标签{{ form.as_p }},
    {% bootstrap_form %}将Bootstrap样式规则应用于各个表单元素。{% buttons %}是bootstrap3起始模板标签,它将Bootstrap样式应用于按钮。

    D、设置new_topic页面的样式

    八、设置new_topic页面的样式

    new_topic.html
    {% extends "learning_logs/base.html" %}
    {% load bootstrap3 %}
     
    {% block header %}
        <h2>Add a new topic:</h2>
    {% endblock header %}
     
    {% block content %}
        <form action="{% url 'learning_logs:new_topic' %}" method="post" class="form">
            {% csrf_token %}
            {% bootstrap_form form %}
     
            {% buttons %}
                <button name="submit">add topic</button>
            {% endbuttons %}
        </form>
     
    {% endblock content %}

    D、设置topics页面的样式

    九、设置topics页面的样式

    topics.html
    {% extends "learning_logs/base.html" %}
     
    {% block header %}
        <h1>Topics</h1>
    {% endblock header %}
     
    {% block content %}
        <ul>
        {% for topic in topics %}
            <li>
                <h3><a href="{% url 'learning_logs:topic' topic.id %}">{{ topic }}</a></h3>
            </li>
        {% empty %}
            <li>No topics have been added yet.</li>
        {% endfor %}
        </ul>
     
        <h3><a href="{% url 'learning_logs:new_topic' %}">Add a new topic:</a></h3>
     
    {% endblock content %}

    E、设置topic页面中条目的样式

    十、设置topic页面中条目的样式

    topic.html
    {% extends "learning_logs/base.html" %}
    {% block header %}
        <h2>{{ topic }}</h2>
    {% endblock header %}
     
    {% block content %}
        <p><a href="{% url "learning_logs:new_entry" topic.id %}">Add new entry</a></p>
     
        {% for entry in entries %}
            <div class="panel panel-default">
                <div class="panel-heading">
                    <h3>
                        {{ entry.date_added|date:'M d,Y H:i' }}
                        <small>
                            <a href="{% url "learning_logs:edit_entry" entry.id %}">edit entry</a>
                        </small>
                    </h3>
                </div>
                <div class="panel-body">
                    {{ entry.text|linebreaks }}
                </div>
            </div>
     
        {% empty %}
            There are no entries for this topic yet.
        {% endfor %}
    {% endblock content %}
  • 相关阅读:
    senrty 配置Email
    pip安装使用详解
    C_FORCE_ROOT linux环境变量设置
    Supervisord管理
    解决外部机器通过VM内ubuntu IP 无法访问vm内web服务的问题
    C# 使用Nlog记录日志到数据库 使用LogEventInfo类获取,命名空间名称、类名、方法名
    godaddy.com 注册域名 买卖域名
    vue-15-vuex-store的用法
    vue-14-less 语法的使用
    vue-13-swiper组件的使用
  • 原文地址:https://www.cnblogs.com/CSgarcia/p/13292488.html
Copyright © 2020-2023  润新知