1、先後端不分離javascript
一、templates目錄裏存放html文件,新建同級目錄"static"存放css、images、js文件css
二、settings文件中設置static目錄的路徑html
STATIC_URL = '/static/' STATICFILES_DIRS = ( os.path.join(BASE_DIR,'static'), )#靜態文件的目錄
三、views文件中設置前端頁面要取的值前端
from django.shortcuts import render # Create your views here. def index(requset): navs = ['個人相冊', '個人日記', 'python', 'linux', '接口測試'] title = '唐少林的我的博客' content = {'daohang': navs, 'title': title} articles = [ {'title':'文章1','content':'文章11111111'}, {'title': '你是什麼人便會趕上什麼人', 'content': '有時就爲了一句狠話,像心頭一口毒釘,永遠麻痺着親密感情交流。'}, ] dic = {'articles':articles} return render(requset,'index.html',dic)
四、urls文件中配置java
from django.contrib import admin from django.urls import path from user import views urlpatterns = [ path('admin/', admin.site.urls), path('index/',views.index), path('info/',views.info), ]
2、先後端分離python
一、前端模板繼承linux
多個頁面重複的頁面代碼,能夠使用模板繼承,新建一個base.html文件,把多個頁面重複內容,粘貼到頁面上數據庫
<script type="text/javascript" src="/static/js/hc-sticky.js"></script> <script type="text/javascript" src="/static/js/comm.js"></script> {% block css %} {% endblock %} {% block js %} {% endblock %} <!--[if lt IE 9]> <script src="/static/js/modernizr.js"></script> <![endif]--> </head> <body> <header class="header-navigation" id="header"> <nav><div class="logo"><a href="/">{{ title }}</a></div> <h2 id="mnavh"><span class="navicon"></span></h2> <ul id="starlist"> {% for nav in daohang %} <li><a href="index.html">{{ nav }}</a></li> {% endfor %} </ul> </nav> </header> {% block content %} {% endblock %}
具體頁面中使用時直接繼承base頁面django
{% extends 'base.html' %}#繼承base頁面 {% block content %} <article> <aside> <div class="l_box" id="stickMe"> <div class="about_me"> <h2>關於我</h2>
二、上下文處理後端
views文件中,多個函數都使用到的變量,能夠使用上下文處理,dj_test目錄下新建context_process.py文件
def nav_title_process(requset): #上下文管理器,這個函數裏返回的每一個變量,在每一個頁面裏面均可以用 navs = ['個人相冊', '個人日記', 'python', 'linux', '接口測試'] title = '唐少林的我的博客' content = {'daohang':navs,'title':title} return content
setting文件中設置
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', 'dj_test.context_process.nav_title_process' ], }, }, ]
views文件中刪除context_process.py文件中定義的變量
三、同步表結構
models文件中建立表結構
from django.db import models # Create your models here. class Nav(models.Model): name = models.CharField(max_length=10,unique=True,verbose_name='導航名稱') is_delete = models.SmallIntegerField(default=1,verbose_name='是否被刪除') create_time = models.DateTimeField(verbose_name='建立時間',auto_now_add=True)#插入數據的時候自動取當前時間 update_time = models.DateTimeField(verbose_name='修改時間',auto_now=True)#修改的時候,時間自動更新 # def __str__(self): # return self.name class Meta: verbose_name = '導航表' verbose_name_plural = verbose_name db_table = 'nav'#設定表名 # ordering = ['create_time']#查詢時排序
再運行命令
python manage.py makemigrations #產生遷移數據庫的代碼python manage.py migrate #同步到數據庫