搭建本身的博客(六):添加首頁,使用css對界面作美化

以前優化了一些代碼,可是以前進入首頁直接進入了博客列表,今天添加了首頁,以區分和博客的區別,而且使用css代碼美化了以前的一些東西。css

一、變化的部分,先上圖:(藍色表示修改,紅色表示新增)html

二、上代碼:mysql

# -*- coding: utf-8 -*-
# @Time    : 18-11-4 下午5:22
# @Author  : Felix Wang

from django.urls import path
from . import views

urlpatterns = [
    path('', views.blog_list, name='blog_list'),
    # name 表示別名
    path('<int:blog_pk>', views.blog_detail, name='blog_detail'),
    # 連接很是容易混掉,因此要區分,在連接前面添加type
    path('type/<int:blog_type_pk>', views.blogs_with_type, name='blogs_with_type'),
]
blog下的urls
"""
Django settings for myblog project.

Generated by 'django-admin startproject' using Django 2.1.3.

For more information on this file, see
https://docs.djangoproject.com/en/2.1/topics/settings/

For the full list of settings and their values, see
https://docs.djangoproject.com/en/2.1/ref/settings/
"""

import os

# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/2.1/howto/deployment/checklist/

# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = 'ea+kzo_5k^6r7micfg@lar1(rfdc08@b4*+w5d11=0mp1p5ngr'

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True

ALLOWED_HOSTS = []

# Application definition

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'blog.apps.BlogConfig',  # 將本身建立的app添加到設置中
]

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

ROOT_URLCONF = 'myblog.urls'

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [
            os.path.join(BASE_DIR, 'templates'),
        ],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

WSGI_APPLICATION = 'myblog.wsgi.application'

# Database
# https://docs.djangoproject.com/en/2.1/ref/settings/#databases

DATABASES = {
    # 'default': {
    #     'ENGINE': 'django.db.backends.sqlite3',
    #     'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    # }
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'myblogs',  # 要鏈接的數據庫,鏈接前須要建立好
        'USER': 'root',  # 鏈接數據庫的用戶名
        'PASSWORD': 'felixwang',  # 鏈接數據庫的密碼
        'HOST': '127.0.0.1',  # 鏈接主機,默認本級
        'PORT': 3306  # 端口 默認3306
    }
}

# Password validation
# https://docs.djangoproject.com/en/2.1/ref/settings/#auth-password-validators

AUTH_PASSWORD_VALIDATORS = [
    {
        'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
    },
]

# Internationalization
# https://docs.djangoproject.com/en/2.1/topics/i18n/

# LANGUAGE_CODE = 'en-us'
LANGUAGE_CODE = 'zh-hans'

# TIME_ZONE = 'UTC'
TIME_ZONE = 'Asia/Shanghai'

USE_I18N = True

USE_L10N = True

USE_TZ = True

# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/2.1/howto/static-files/

STATIC_URL = '/static/'
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "static")
]
settings
"""myblog URL Configuration

The `urlpatterns` list routes URLs to views. For more information please see:
    https://docs.djangoproject.com/en/2.1/topics/http/urls/
Examples:
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  path('', views.home, name='home')
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  path('', Home.as_view(), name='home')
Including another URLconf
    1. Import the include() function: from django.urls import include, path
    2. Add a URL to urlpatterns:  path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import path, include
from . import views

urlpatterns = [
    path('', views.home, name='home'),  # 主頁路徑
    path('admin/', admin.site.urls),
    path('blog/', include('blog.urls')),  # 博客app路徑
]
myblog下的urls
# -*- coding: utf-8 -*-
# @Time    : 18-11-7 下午4:12
# @Author  : Felix Wang

from django.shortcuts import render_to_response


def home(requests):
    return render_to_response('home.html', {})
myblog下的views
body, * {
    margin: 0;
    padding: 0;
}

div.nav {
    background-color: #eeeeee;
    border-bottom: 1px solid black;
    padding: 10px 5px;
}

div.nav a.logo {
    display: inline-block;
    font-size: 120%;
}

div.nav a {
    text-decoration: none;
    color: black;
    padding: 5px 10px;
}
base.css
.home-content {
    font-size: 222%;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
}
home.css
{% load staticfiles %}

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>
        {#  用來放標題  #}
        {% block title %}

        {% endblock %}
    </title>
    <link rel="stylesheet" href="{% static '/css/base.css' %}">
    {#下面這種和上面這種效果如出一轍,可是推薦使用上面這種#}
    {#    <link rel="stylesheet" href="/static/css/base.css">#}

    {% block header_extends %}
    {% endblock %}
</head>
<body>
<div class="nav">
    <a class="logo" href="{% url 'home' %}">
        <h3>felix Blog</h3>
    </a>
    <a href="{% url 'home' %}">首頁</a>
    <a href="{% url 'blog_list' %}">博客</a>
</div>
{# 用來放內容 #}
{% block content %}

{% endblock %}

</body>
</html>
base.html
{% extends 'base.html' %}
{% load staticfiles %}


{% block header_extends %}
    <link rel="stylesheet" href="{% static 'css/home.css' %}">
{% endblock %}

{% block title %}
    個人網站|首頁
{% endblock %}


{% block content %}
    <h1 class="home-content">歡迎訪問個人博客</h1>
{% endblock %}
home.html

三、知識點梳理sql

(1)、靜態文件數據庫

首先在項目目錄下新建一個static文件夾用來存放諸如css,js,img等靜態文件。django

新建以後如何讓django找到這個靜態目錄呢?這時咱們須要在django的settings文件中指定靜態目錄地址:session

以下app

# 在settings中添加靜態文件路徑
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "static")
]

(2)、使用靜態文件ide

靜態文件的使用方式有兩種。優化

a、經過訪問路徑的方式添加

如添加css文件:

# 這種方式經過訪問路徑的形式加載使用靜態文件   
 <link rel="stylesheet" href="/static/css/base.css">

b、經過模板語言的方式添加

# 加載靜態文件放在html文件開頭
{% load staticfiles %}

# 很是推薦使用這種方式加載靜態文件
 <link rel="stylesheet" href="{% static '/css/base.css' %}">
相關文章
相關標籤/搜索