当前位置: 首页 > news >正文

【Django】教程-2-前端-目录结构介绍

【Django】教程-1-安装+创建项目+目录结构介绍

3. 前端文件配置

3.1 目录介绍

在app下创建static文件夹, 是根据setting中的配置来的 STATIC_URL = ‘static/’

templates目录,编写HTML模板(含有模板语法,继承,{% static ‘xx’ %})

一般会创建三个目录:css、img、js、plugins

|-- appTang
|	|-- migrations		【固定,不用动,数据库变更记录】
|		|-- __init__.py
|	|-- static			【静态资源配置】
|		|-- css
|		|-- img			【图片】
|		|-- js			【js插件,jQuery】
|		|-- plugins		【插件,bootstrap3.4.1等】
|	|-- templates		【前端页面文件夹】
|		|-- xxx.html
|	|-- __init__.py
|	|-- admin.py		【固定,django默认提供的admin后台管理】
|	|-- apps.py 		【固定,不用动,app启动类】
|	|-- models.py		【**重要**】,对数据库操作
|	|-- tests.py		【固定,不用动】单元测试
|	|-- view.py			【**重要**】函数,处理逻辑编写
{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="{% static 'plugins/bootstrap-3.4.1/css/bootstrap.css'%}"/>

</head>
<body>

<h1>用户列表</h1>

{{ n1 }}
{#<input type="text" class="btn btn-primary" value="新建"/>#}
<script src="{ % static 'js/jquery-3.7.1.js %'}"></script>
<script src="{ % static 'plugins/bootstrap-3.4.1/js/bootstrap.js %'}"></script>


</body>
</html>

在这里插入图片描述
在这里插入图片描述

3.2 字典-对应关系

 	{% for k in n3.keys %}
        <tr>
            <td>{{ k.name }}</td>
            <td>{{ k.salary }}</td>
            <td>{{ k.role }}</td>
        </tr>
	{% endfor %}
    
    {% for v in n3.values %}
        <tr>
            <td>{{ v }}</td>
        </tr>
	{% endfor %}

在这里插入图片描述

{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="{% static 'plugins/bootstrap-3.4.1/css/bootstrap.css'%}"/>

</head>
<body>
    <table border="1">
        <h1>用户列表</h1>
        <input type="text" class="btn btn-primary" value="新建"/>

        {#<img src="{% static 'img/1.png' %}" alt=""/>#}
        {{ n1 }}
        <thead>
            <th>姓名</th>
            <th>电话</th>
            <th>地址</th>
        </thead>
        <tbody>

            {% for foo in row_obj %}
                <tr>
                    <td>{{ foo.customer_name }}</td>
                    <td>{{ foo.customer_tel }}</td>
                    <td>{{ foo.customer_address }}</td>
                </tr>
            {% endfor %}



        </tbody>
    </table>

    </tbody>

<script src="{ % static 'js/jquery-3.7.1.js %'}"></script>
<script src="{ % static 'plugins/bootstrap-3.4.1/js/bootstrap.js %'}"></script>

</body>
</html>

3.3 条件

在这里插入图片描述

3.4 流程图

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

render 读取html内容+渲染(替换)->字符串,返回给用户

redirect(“www.baidu.com”) 重定向

3.5 安全机制

表单提交:需要{% csrf_token %} 安全机制,要不然会报403,一定要添加到form表单里面

from django.shortcuts import render, HttpResponse, redirect

def login(request):
    if request.method == 'GET':
        return render(request, "login.html")
    print(request.POST)
    username = request.POST.get("user")
    pwd = request.POST.get("pwd")
    if username == 'root' and pwd == '123'
        # return HttpRequest("登录成功")
        return redirect("www.baidu.com")
    # return HttpRequest("登录失败")
    return render(request, "login.html",{"error_msg":"用户名或密码错误"})
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

</head>
<body>
   <h1>用户登录</h1>
   <form method="post" action="/login/">
       
       {% csrf_token %}
       
       <input type="text" name="user" placeholder="用户名">
       <input type="password" name="pwd" placeholder="密码">
       <input type="submit" value="提交">
       <span style="color:red;">{{error_msg}}</span>span>
   </form>

</body>
</html>

7. 模板继承

7.1 定义模板

layout.html

{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href="{% static 'plugins/bootstrap-3.4.1/css/bootstrap.css'%}"/>
    {% block css %}{% endblock %}
</head>
<body>

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

    
<script src="{ % static 'js/jquery-3.7.1.js %'}"></script>
<script src="{ % static 'plugins/bootstrap-3.4.1/js/bootstrap.js %'}"></script>
    
{% block js %}{% endblock %}
</body>
</html>

继承模板:

{% extends 'layout.html' %}

{% block content %}
    <h1>首页</h1>
    
{% endblock %}

相关文章:

  • 单细胞簇鉴定
  • ubuntu如何安装conda
  • 记录一次渗透测试/常用命令
  • 华为配置篇-ISIS基础实验
  • BKA-CNN-GRU、CNN-GRU、GRU、CNN四模型多变量时序预测(Matlab)
  • 【机器学习】——模型评估与选择
  • 【大模型基础_毛玉仁】4.5 实践与应用--参数高效微调PEFT
  • 6、进程理论和简单进程创建
  • WMS系统功能设计和源码实现(Java开发)
  • Redisson - 分布式锁和同步器
  • 嵌入式系统中各类存储方式的区别及接口协议详解
  • 如何应对竞品分析不足导致的方案偏差
  • 禅道后台命令执行漏洞
  • Vue 中provide和inject的作用,在什么场景下使用它们进行跨层级组件通信?
  • 图解AUTOSAR_SWS_FlashEEPROMEmulation
  • 《第三次世界大战》小说预告
  • Spring三级缓存解决循环依赖的深度解析
  • ar头显和眼镜图像特效处理
  • 蓝桥杯模拟题--约数的个数(约数和质因数的区别)
  • 【PCB工艺】时序图(Timing Diagram)
  • wordpress自定义分类名称/网站推广优化外包便宜
  • 哪家的云服务器便宜/重庆seo排名方法
  • 网站如何做传输网盘/网站开通
  • 简要说明网站建设的步骤/公司网站建设哪个好
  • 深圳网站建设公司 概况/现在网络推广哪家好
  • 微网站服务器/怎么把产品推广到各大平台