首页 > 其他 > 详细

django项目搭建

时间:2019-10-19 22:20:08      阅读:62      评论:0      收藏:0      [点我收藏+]

一、前后端不分离

1、templates目录里存放html文件,新建同级目录"static"存放css、images、js文件

2、settings文件中设置static目录的路径

STATIC_URL = /static/
STATICFILES_DIRS = (
    os.path.join(BASE_DIR,static),
)#静态文件的目录

3、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)

4、urls文件中配置

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),
]

二、前后端分离

1、前端模板继承

多个页面重复的页面代码,可以使用模板继承,新建一个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页面

{% extends base.html %}#继承base页面
{% block content %}
<article>
  <aside>
    <div class="l_box" id="stickMe">
      <div class="about_me">
        <h2>关于我</h2>

2、上下文处理

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文件中定义的变量

3、同步表结构

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 #同步到数据库

 

django项目搭建

原文:https://www.cnblogs.com/rj-tsl/p/11705945.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!