django項目搭建

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 #同步到數據庫

相關文章
相關標籤/搜索