2.Django 前后端数据交互

文章目录

1. 注册登入项目

项目需求:
1. 127.0.0.1:8080/regisert 进入注册页面
2. 127.0.0.0:8080/login 进入登入页面

2. 项目准备

2.1 新建项目

image-20220302001416163

2.2 结果路径报错问题
修改 Templates 模板文件的路径拼接文件 --> 将 / 改为 ,

image-20220302001829663

2.3 创建app应用
一个程序必须有一个应用.


在pycharm底部打开终端,输入:
python manage.py startapp app01

image-20220302002007645

2.4 注册app引用
创建的app必须要注册,在settings配置文件中添加注册.
setting.py 的第 33 行


INSTALLED_APPS = [
    'django.contrib.admin',
 ····························
    'app02'  # 添加app应用名称
]

image-20220302002207051

3. 登入功能

需求: 在地址栏输入127.0.0.1/login/ 返回一个登入页面
3.1 路由层
路由层中写 路由 与 视图函数 的对应关系.


# urls.py

from django.conf.urls import url
from django.contrib import admin

# 0.导入视图模块
from app01 import views     

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    # 1. 路由与视图函数的关系
    url(r'^login/', views.login)
]
3.2 视图层
打开app01应用的views.py的视图层,写登入函数.
* 所有视图函数都需要接收request形参.
* 使用render函数必须返回request形参.


# views.py
# 0. Django 自动导入 render 函数
from django.shortcuts import render

# 1.接收request参数
def login(request):
    
    # 2.返回request, 返回登入界面
    return render(request, 'login.html')
3.3 静态文件
1.介绍
静态文件:不会改变的文件.
项目中的 CSS文件,JavaScript文件,图片,音频文件,第三方框架...都是静态文件.
2. 存放位置
html文件都放在templates目录下.
静态文件都放在static目录下.
* 需要自己手动在项目下创建文件static目录.可以是别的名字,但是别人都使用这个名称,就约定俗成了.
3. 创建目录划分子目录
0. 在项目目录下创建static目录
1. 对静态文件进一步的划分,不同类型的文件存在在不同的子目录当中.


static (需要的时候在创建子目录,可以先不创建子目录)
  |-js
  |-css
  |-img
  |-其他
4.项目需要的静态文件
前端需要使用到bootstrap框架 和 jquery库文件.
bootstrap是基于jquery使用的,引入bootstrap相关文件前必须先引入jquery库文件.


0.在static下创建js目录.
1.将jquery-3.6.6.min.js复制到static的子目录js下.
2.将前端框架bootstrap-3.3.7-dist复制到static目录下.


jquery库文件下载地址:  https://code.jquery.com/jquery-3.6.0.min.js
bootstrap框架下载地址: https://v3.bootcss.com/getting-started/#download
bootstrap下载后需要解压

image-20220302153836749

image-20220302172754540

3.4 登入页面
* 前端页面代码存放在templates目录中.
0. templates下创建login.html文件.
1. html中引入jQuery 库文件
2. html中引入bootstrap css文件
3. html中引入bootstrap js文件
4. 写一个简单的登入页面


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>登入页面</title>
    <!--0. 引入jQuery 库文件-->
    <script src="/static/js/jquery-3.6.0.min.js"></script>
    <!--1. 引入bootstrap css文件-->
    <link rel="stylesheet" href="/static/bootstrap-3.3.7-dist/css/bootstrap.min.css">
    <!--2. 引入bootstrap js文件-->
    <script src="/static/bootstrap-3.3.7-dist/js/bootstrap.min.js"></script>
    <style>
        /* 网页背景 */
        body {
            background-image: url("../static/img/3.jpg");
            /*  不缩放  */
            background-size: cover;
            /*  不平铺  */
            background-repeat: no-repeat;
        }
    </style>
</head>
<body>
<div class="container">
    <!--标题-->
    <h1 class="text-center">登入</h1>
    <!--表单内容-->
    <div class="row">
        <div class="col-md-8 col-md-offset-2">
            <form action="">
                <p>
                    <label for="d1">用户名称:</label>
                    <input type="text" id='d1' name="username" class="form-control">
                </p>

                <p>
                    <label for="d2">用户密码:</label>
                    <input type="text" id='d2' name="password" class="form-control">
                </p>
                <p>性别:
                    <input type="radio" name="gender" value="male"> 男
                    <input type="radio" name="gender" value="female"> 女
                </p>
                <input type="submit" class="btn btn-success btn-block">
            </form>
        </div>
    </div>
</div>
</body>
</html>
3.5 静态路径开放
静态文件都放在static目录下,后端服务器正常运行下:
如果能够看到对应的静态资源,那么就是后端开设了静态文件资源的接口.


0. 启动程序后,浏览器输入 127.0.0.1:8000/login
1. 在后端查看信息
结论:静态资源无法访问.

image-20220302204546145

1. 令牌
Django的settings.py文件下第122行:

# 静态url 
STATIC_URL = '/static/'  

STATIC_URL设置的值相当于令牌,访问的路径必须以这个令牌的名称开始.
* 令牌名字更改了,所有相关的路径都需要改. 前端

image-20220302163458198

2. 开放
STATICFILES_DIRS 设置静态文件的路径, 设置之后便能正常访问静态文件.
格式:(在令牌后面设置)
STATICFILES_DIRS = [路径1, 路径2, ...]

从前玩后依次从列表中取值,取到则返回,都没有则报错.


# 令牌
STATIC_URL = '/static/' 
# 设置静态文件的路径
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static'),
]

image-20220302204840173

3. 动态修改
使用模板语法,获取令牌名字,
当名字更改了,所有相关的路径都自动改.


{% load static %}
<script src="{% static 'bootstrap-3.3.7-dist/js/bootstrap.min.js'%}"></script>


<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>登入页面</title>
    {% load stati
  • 6
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
本门课程重实战,将基础知识拆解到项目里,让你在项目情境里学知识。 这样的学习方式能让你保持兴趣、充满动力,时刻知道学的东西能用在哪、能怎么用。 平时不明白的知识点,放在项目里去理解就恍然大悟了。   一、融汇贯通 本视频采用了前后端分离的开发模式,前端使用Vue.js+Element UI实现了Web页面的呈现,后端使用PythonDjango框架实现了数据访问的接口,前端通过Axios访问后端接口获得数据。在学习完本章节后,真正理解前后端的各自承担的工作。   二、贴近实战 本系列课程为练手项目实战:学生管理系统v4.0的开发,项目包含了如下几个内容:项目的总体介绍、基本功能的演示、Vuejs的初始化、Element UI的使用、在Django中实现针对数据的增删改查的接口、在Vuejs中实现前端增删改查的调用、实现文件的上传、实现表格的分页、实现导出数据到Excel、实现通过Excel导入数据、实现针对表格的批量化操作等等,所有的功能都通过演示完成、贴近了实战   三、课程亮点 在本案例中,最大的亮点在于前后端做了分离,真正理解前后端的各自承担的工作。前端如何和后端交互   适合人群: 1、有Python语言基础、web前端基础,想要深入学习Python Web框架的朋友; 2、有Django基础,但是想学习企业级项目实战的朋友; 3、有MySQL数据库基础的朋友  
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值