Anaconda+django写出第一个web app(五)

今天开始学习网页风格和设计,就像python有Web框架一样,也有一些CSS框架。对于CSS框架,我们可以使用默认的样式,也可以在原基础上编辑修改。本教程使用的是materialize这个CSS框架[1],首页界面如下:

点解GET STARTED,我们可以把它下载到本地使用,也可以直接复制相应的链接使用。

为了套用如下这个Cards界面,我们直接将代码复制到home.html:

修改后的home.html内容如下:

{% load static %}
<!-- Compiled and minified CSS -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css">

<!-- Compiled and minified JavaScript -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script>
<link href="{% static ‘tinymce/css/prism.css‘ %}" rel="stylesheet">
</head>

<body>
<div class="row">
    {% for t in tutorials %}
    <div class="col s12 m6">
      <div class="card blue-grey darken-1">
        <div class="card-content white-text">
          <span class="card-title">{{ t.tutorial_title}}</span>
            <p>{{ t.tutorial_published }}</p>
            <p>{{ t.tutorial_content|safe }}</p>
        </div>
      </div>
    </div>
    {% endfor %}
  </div>
<script src="{% static ‘tinymce/js/prism.js‘ %}"></script>
</body>

启动服务器,刷新界面如下:

我们希望日期显示的字体小一点,可以通过如下方式修改:

<p style="font-size:70%">{{ t.tutorial_published }}</p>

我们希望鼠标落在相应card时,该Card有个浮起效果,可以在如下这行代码后添加hoverable:

<div class="card blue-grey darken-1 hoverable">

接下来,我们希望添加一个如下图所示的导航栏,问题在于我们不是只在首页显示导航栏,随着内容的增加,页面的增加,如果每次都把这段代码拷贝到相应的html页面,将会使得代码冗长且操作繁琐。为了解决这个问题,我们可以使用extends和includes。

首先,我们新建一个header.html文件,将导航栏的信息存储在里面:

<head>
{% load static %}
<!-- Compiled and minified CSS -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css">

<!-- Compiled and minified JavaScript -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script>
<link href="{% static ‘tinymce/css/prism.css‘ %}" rel="stylesheet">
</head>

<body>
    {% block content %}
    {% endblock %}
</body>

<script src="{% static ‘tinymce/js/prism.js‘ %}"></script>

现在粘贴相应的导航栏代码到header.html,修改后内容如下:

<head>
{% load static %}
<!-- Compiled and minified CSS -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css">

<!-- Compiled and minified JavaScript -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/js/materialize.min.js"></script>
<link href="{% static ‘tinymce/css/prism.css‘ %}" rel="stylesheet">
</head>

<body>
  <nav>
    <div class="nav-wrapper">
      <a href="#" class="brand-logo">Logo</a>
      <ul id="nav-mobile" class="right hide-on-med-and-down">
        <li><a href="sass.html">Sass</a></li>
        <li><a href="badges.html">Components</a></li>
        <li><a href="collapsible.html">JavaScript</a></li>
      </ul>
    </div>
  </nav>
    {% block content %}
    {% endblock %}
</body>

<script src="{% static ‘tinymce/js/prism.js‘ %}"></script>

此时home.html的内容如下

{% extends ‘main/header.html‘ %}

{% block content %}
<div class="row">
    {% for t in tutorials %}
    <div class="col s12 m6">
      <div class="card blue-grey darken-1 hoverable">
        <div class="card-content white-text">
          <span class="card-title">{{ t.tutorial_title}}</span>
              <p style="font-size:70%">{{ t.tutorial_published }}</p>
            <p>{{ t.tutorial_content|safe }}</p>
        </div>
      </div>
    </div>
    {% endfor %}
  </div>

{% endblock %}

重新到浏览器刷新页面,可以看到导航栏出现了:

我们对导航栏上显示的字Sass, Components, JavaScript做出修改,得到如下界面:

如果我们想改变导航栏的颜色或者Card的颜色,该怎么做呢?可以参考链接[2],我暂时先不对此做出修改,之后想修改时再来操作。

参考链接:

[1] https://materializecss.com/

[2] https://pythonprogramming.net/css-django-tutorial/

原文地址:https://www.cnblogs.com/yunxiaofei/p/10422166.html

时间: 2024-08-06 16:13:19

Anaconda+django写出第一个web app(五)的相关文章

Anaconda+django写出第一个web app(一)

在安装好Anaconda和django之后,我们就可以开始创建自己的第一个Web app,那么首先创建一个空文件夹,之后创建的文件都在这个文件夹内. 启动命令行进入此文件夹内,可以先通过如下命令查看一下自己的python版本和django版本. python --version  django-admin --version 我的python和django版本分别是3.7.0和2.1.5 使用如下命令创建第一个项目,命名为mysite. django-admin startproject mys

Anaconda+django写出第一个web app(十)

今天继续学习外键的使用. 当我们有了category.series和很多tutorials时,我们查看某个tutorial,可能需要这样的路径http://127.0.0.1:8000/category/series/tutorial,这样看上去十分的繁琐,我们希望无论是在category下还是在series.tutorials下,都只有一级路径. 那么如何做呢?首先在views.py中,我们定义一个single_slug函数: def single_slug(request, single_s

Anaconda+django写出第一个web app(三)

前面我们已经建立了模型Tutorial,也已经可以用Navicat Premium打开数据看查看数据,接下来我们通过建立admin账户来上传数据. 在命令行执行如下命令来创建用户: python manage.py createsuperuser 然后输入相应的用户名.邮箱和密码,邮箱可随意填写,接下来执行 python manage.py runserver ,在浏览器输入 http://127.0.0.1:8000/admin/看到下图,输入刚才创建的用户名和密码: 我们可以在User中看到

Anaconda+django写出第一个web app(八)

今天来实现网站的登入和登出功能. 首先我们需要在urls.py中添加路径,注意此处的路径和在导航栏中设置的文字路径保持一致: from django.urls import path from . import views app_name = 'main' #此处为了urls的命名空间 urlpatterns = [ path('', views.homepage, name='homepage'), path('register/', views.register, name='regist

如何设计和实现一个web app

web app简介 web app其实不算是什么新鲜的东西,相比于传统的web和传统的app,web app这种web和app相结合的产物有的优点如下: 1. 开发上web app更有便捷性,ios开发一上来需要安装一堆东西,android开发也差不多,另外web app的学习成本要比平台客户端开发要低些,至少你不用去招聘ios和android程序员.只要具备基础web开发能力的人都可以比较快上手. 2. 部署方便,在很多情况下,部署一个单页web app只需要一个index.html页面文件作

【2】依照Django官网,创建一个web app

1. Creating app $ python manage.py startapp polls That'll create a directory polls, which is laid out like this: polls/ __init__.py admin.py migrations/ __init__.py models.py tests.py views.py 1.1 Edit polls/models.py: from django.db import models cl

【2】按照Django官网,创建一个web app 创建app/创建相应的数据库表

1. Creating app $ python manage.py startapp polls That'll create a directory polls, which is laid out like this: polls/ __init__.py admin.py migrations/ __init__.py models.py tests.py views.py 1.1 Edit polls/models.py: from django.db import models cl

【3】依照django官网:创建一个web app

1 Creating an admin user $ python manage.py createsuperuser UserName: wuwh Password:   ganbare 2  Start the development server? $ python manage.py runserver 8088 visit :http://127.0.0.1:8000/admin/ 3 .Make the poll app modifiable in the admin from dj

【1】依照Django官网,编写一个web app

1. Creating a project From the command line, cd into a directory where you'd like to store your code, then run the following command: $ django-admin startproject mysite Let's look at what startproject created: mysite/ manage.py mysite/ __init__.py se