四、Django编写简单的接口实现前后端交互

目录

四、Django编写简单的接口实现前后端交互

1.在urls.py中配置好接口路径和视图

2.在views.py中写对应的逻辑

3.在templates中添加对应的页面


四、Django编写简单的接口实现前后端交互

这里以一个简单的根据id查询地址的功能为例

1.在urls.py中配置好接口路径和视图

    #一个用来做页面展示,一个用来做接口逻辑
    path('home/',views.home),#添加页面路径
    path('query/', views.query),#添加接口路径

2.在views.py中写对应的逻辑

#页面配置
def home(request):
    return render(request,'home.html')


#定义接口逻辑
def query(request):
    if request.method == 'POST':
        #获取前端参数值
        number = request.POST.get('number')
        # 从数据库查询对应的数据
        # 增
        try:
            database_addrnew = idaddr.objects.get(id=number)
        except:
            idaddr.objects.create(id=number, addr='addr')

        # 查
        database_addr = idaddr.objects.filter(id=number)
        for da in database_addr:
            test_report = da.addr

        # 返回数据
        response_data = {
            'test_report': test_report,
            'result': 'success',
            'result_code': 0,
        }
        return JsonResponse(response_data)

3.在templates中添加对应的页面

下面分别用表单和ajax实现两个简单的查询功能

<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>后台管理系统</title>
    <style>
      /* 样式定义 */
      * {
        margin: 0;
        padding: 0;
        box-sizing: border-box;
      }
      body {
        font-family: Arial, sans-serif;
      }
      #sidebar {
        position: fixed;
        top: 0;
        left: 0;
        bottom: 0;
        width: 200px;
        background-color: #333;
        color: #fff;
      }
      #sidebar ul {
        list-style: none;
        margin: 20px 0;
        padding: 0;
      }
      #sidebar ul li {
        padding: 10px;
        cursor: pointer;
        border-bottom: 1px solid #555;
      }
      #sidebar ul li.active {
        background-color: #555;
      }
      #content {
        margin-left: 200px;
        padding: 20px;
      }
      h1 {
        font-size: 36px;
        margin-bottom: 20px;
      }
      label {
        display: block;
        margin-bottom: 10px;
      }
      input {
        width: 10%;
        padding: 10px;
        border: 1px solid #ccc;
        border-radius: 5px;
        margin-bottom: 20px;
        font-size: 16px;
      }
      button {
        padding: 10px 20px;
        background-color: #333;
        color: #fff;
        border: none;
        border-radius: 5px;
        font-size: 16px;
        cursor: pointer;
      }
      button:hover {
        background-color: #444;
      }
    </style>
  </head>
  <body>
    <div id="sidebar">
      <ul>
        <li class="active" data-page="home">首页</li>
        <li data-page="feature1">功能1</li>
        <li data-page="feature2">功能2</li>
        <li data-page="feature3">功能3</li>
      </ul>
    </div>
    <div id="content">
      <h1>欢迎使用后台管理系统!</h1>
      <p>请选择左侧菜单进行操作。</p>
      <div id="home" class="page">
        <p>欢迎使用!</p>
      </div>
      <div id="feature1" class="page">
        <h2>欢迎使用功能1</h2>
        <div>
            <!-- form表单形式 -->
            <form action="/query/" method="POST">
            <h1>根据ID查询内容1:</h1>
              <input name="number">
            <button onclick="query()">查询</button>
            </form>
        </div>
        <div>
          <!-- ajax -->
        <h1>根据ID查询内容2</h1>
        <input type="text" id="number"> <!-- 定义输入框 -->
        <div id="result">结果: <b></b></div> <!-- 结果显示,加粗 -->
        <button onclick="query()">查询</button> <!-- 定义点击事件,调用下方的查询方法 -->
        <!-- 使用ajax在不刷新页面的情况下显示结果 -->
        <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
        <script>
            <!-- 查询方法开始 -->
            function query() {
                var number = $('#number').val(); <!-- 获取前端输入框的数据传给后端接口 -->
                <!-- 请求开始 -->
                $.post('/query/', {'number': number}, function(data) {<!-- 获取结果,放入对应的位置 -->
                    $('#result b').text(data.test_report);
                }, 'json');
            }
        </script>
        </div>
      </div>
      <div id="feature2" class="page">
        <h2>功能2页面</h2>
        <p>欢迎进入功能2。</p>
      </div>
      <div id="feature3" class="page">
        <h2>功能3页面</h2>
        <p>欢迎进入功能3。</p>
      </div>
    </div>
    <script>
      // JavaScript代码
      const pages = document.querySelectorAll('.page');
      const menuItems = document.querySelectorAll('#sidebar li');
      function hidePages() {
        pages.forEach(page => {
          page.style.display = 'none';
        });
      }
      function showPage(pageId) {
        const page = document.getElementById(pageId);
        if (page) {
          hidePages();
          page.style.display = 'block';
        }
      }
      menuItems.forEach(item => {
        item.addEventListener('click', () => {
          const pageId = item.getAttribute('data-page');
          menuItems.forEach(item => {
            item.classList.remove('active');
          });
          item.classList.add('active');
          showPage(pageId);
        });
      });
      showPage('home');
    </script>
  </body>
</html>

具体效果

 

下一章:

五、Django日志配置_郝家伙~的博客-CSDN博客

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: Django是一个Web框架,允许使用Python编写后端代码。要在Django后端前端相互连接,可以通过使用Django内置的视图和模板系统以及AJAX请求来实现。 步骤如下: 1. 在Django项目中创建一个视图,该视图将处理前端的请求并返回数据。 2. 创建一个模板,该模板将呈现数据并显示给用户。 3. 在前端使用AJAX请求发送请求到Django的视图,并从视图接收数据。 4. 在前端使用JavaScript处理接收到的数据并在页面上呈现。 通过这样的方式,Django后端前端可以相互连接并通过AJAX请求传递数据。 ### 回答2: Python Django 是一种常用的开发框架,它可用于构建功能强大的 Web 应用程序。要实现后端的互连,可以使用 Django 的一些特性和技术。 首先,Django 提供了一个强大的模型-视图-控制器(MVC)架构,这个架构使得前后端的分离和交互更加容易。使用 Django,可以将应用程序的数据模型定义为模型类,并且通过这些模型类与数据库进行交互。通过定义视图函数,可以将数据从数据库中检索出来并传递给前端。这样,前端可以使用这些数据来渲染页面。 其次,Django 提供了模板引擎,可以将动态数据注入到 HTML 模板中。前端可以使用 Django 的模板语法来访问和展示这些数据。通过在视图中加载并渲染模板,可以将后端的数据呈现给用户。 此外,Django 还提供了强大的表单处理功能。前端可以使用 Django 的表单组件来创建用户界面,并将用户输入的数据发送到后端进行验证和处理。Django 的表单验证器可以确保数据的完整性和有效性。 最重要的是,Django 提供了一个灵活而强大的 URL 映射机制。通过定义 URL 规则,可以将请求映射到相应的视图函数。这使得前后端的交互变得更加直观和有序。前端通过发送 HTTP 请求,后端通过映射到相应的视图函数来处理这些请求,并返回相应的数据或页面。 总之,Python Django 使用其提供的模型-视图-控制器架构、模板引擎、表单处理和 URL 映射等功能,可以很方便地实现后端的互连。这些功能使得开发人员可以更好地组织和管理复杂的 Web 应用程序,并提供出色的用户体验。 ### 回答3: 要实现Python Django的前后端互连,有以下几个步骤: 1. 构建后端API:使用Django框架创建后端API接口,处理前端发送的请求。可以创建一个Django应用来处理API相关的逻辑。在视图函数中编写业务逻辑,并将结果返回给前端。可以通过Django的Model层与数据库进行交互获取数据。 2. 前端发送请求:在前端开发中,可以使用JavaScript来发送请求到后端,并获取数据。可以使用AJAX技术发送异步请求,或使用Fetch或Axios等库。请求的URL应该与Django的API路径相对应,可以通过URL路径来访问后端的API接口。 3. 处理请求和响应:Django接收到前端发送的请求后,通过路由机制(urls.py)将请求转发给相应的视图函数进行处理。在视图函数中可以通过request对象获取前端发送的数据,可以是GET请求的参数或POST请求的表单数据。在处理完业务逻辑后,可以通过HttpResponse对象返回处理结果给前端。 4. 前端数据展示:在前端接收到后端返回的数据后,可以在网页上进行展示。可以使用HTML+CSS来设计页面的结构和样式,使用JavaScript来动态渲染数据。通过DOM操作将数据插入到HTML中,实现数据的展示。 5. 后端前端互通:后端前端可以通过JSON数据格式进行交互。在后端将处理结果返回给前端时,可以将数据以JSON格式进行序列化。在前端接收到后端返回的数据时,可以通过parseJSON方法将JSON字符串转换为JavaScript对象,从而方便在前端进行处理和展示。 通过以上步骤,可以实现Python Django的前后端互连,实现数据的传输和展示。这种交互方式可以使得前后端开发团队独立进行工作,并且提高了系统的可维护性和扩展性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值