python+html实现前后端数据交互界面显示

本文介绍了使用Python Django开发一个简单的前后端交互项目,实现了前端表单输入计算数据,后端计算并返回结果的全过程,适合初学者理解Django应用开发流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近刚刚开始学习如何将python后台与html前端结合起来,现在写一篇blog记录一下,我采用的是前后端不分离形式。

话不多说,先来实现一个简单的计算功能吧,前端输入计算的数据,后端计算结果,返回结果至前端进行显示。

1.python开发工具

我选用的是pycharm专业版,因为社区版本无法创建django程序

2.项目创建

第一步:打开pycharm,创建一个django程序

蓝圈圈起来的为自定义的名字,点击右下角的create可以创建一个django项目

如下图,圈起来的名字与上图相对应

第二步:编写后端代码

①在blog文件夹下面的views.py中编写以下代码:

from django.shortcuts import render
from calculate import jisuan
# Create your views here.


def calculate(request):
    return render(request, 'hello.html')


def show(request):
    x = request.POST.get('x')
    y = request.POST.get('y')
    result = jisuan(x, y)
    return render(request, 'result.html', {'result': result})

②在csdn文件夹下面的urls.py中添加下面加粗部分那两行代码

from django.contrib import admin
from django.urls import path
from blog import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('jisuan/', views.calculate),
    path('getdata/', views.show)
]

③新建calculate.py文件,内容为:

def jisuan(x, y):
    x = int(x)
    y = int(y)
    return (x+y)

第三步:编写前端代码

①数据输入的页面hello.html,内容为:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form method="post" action="/getdata/">
    {% csrf_token %}
    <input type="text" name="x" placeholder="请输入x"/><br>
    <input type="text" name="y" placeholder="请输入y"><br>
    <input type="submit" value="进行计算">
</form>

</body>
</html>

②结果返回的页面result.html,内容为:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1 style="color:blue">计算结果为{{ result }}</h1>
</body>
</html>

第四步:启动后台程序

在浏览器地址栏输入http://127.0.0.1:8000/jisuan

回车可进入数据输入页面

我们输入x=10, y=20

点击进行计算按钮,页面跳转,显示计算结果

 

 好啦,一个简单的django项目就完成啦

如果想要进行复杂的计算操作,可以在calculate.py编写更加复杂的函数

源码资源链接:django学习,前后端不分离-Python文档类资源-CSDN文库https://download.csdn.net/download/thzhaopan/84989809

### 如何使用 Python 和 Vue 实现数据分析项目的前后端分离架构 #### 架构概述 在现代 Web 开发中,前后端分离已经成为一种常见的开发模式。对于数据分析项目而言,这种架构允许前端专注于用户体验和可视化展示,而后端则负责处理业务逻辑、数据存储以及API服务。 #### 技术选型 - **后端**: 使用 `Django` 或者更轻量级的 `Flask` 来创建 RESTful API 接口[^1]。 - **前端**: 利用 `Vue.js` 及其生态工具链来构建交互式的用户界面[^4]。 #### 数据流设计 整个系统的运作流程如下: - 用户请求由浏览器发送到服务器; - 服务器上的 Django/Flask 应用接收到 HTTP 请求并解析 URL 路径匹配相应的视图函数; - 视图函数调用模型层获取所需的数据集,并将其序列化成 JSON 格式返回给客户端; - 客户端接收到来自服务器响应中的JSON对象之后,利用 Axios 发起异步HTTP请求与后端通信,从而动态更新页面内容而无需刷新整个网页; ```javascript // 示例:Vue 组件内发起 GET 请求获取数据 import axios from 'axios'; export default { data() { return { chartData: null, }; }, methods: { fetchData() { axios.get('/api/data/') .then(response => this.chartData = response.data) .catch(error => console.log(error)); } }, mounted() { this.fetchData(); } } ``` #### 后端接口定义 为了支持上述操作,在后端需要设置好对应的路由映射关系及相应处理器方法。以下是基于 Django Rest Framework (DRF) 创建的一个简单例子: ```python from rest_framework import viewsets, permissions from .models import DataPoint from .serializers import DataPointSerializer class DataViewSet(viewsets.ModelViewSet): queryset = DataPoint.objects.all() serializer_class = DataPointSerializer permission_classes = [permissions.IsAuthenticatedOrReadOnly] def get_queryset(self): """ Optionally restricts the returned purchases to a given user, by filtering against a `username` query parameter in the URL. """ queryset = DataPoint.objects.all() username = self.request.query_params.get('username', None) if username is not None: queryset = queryset.filter(user__username=username) return queryset ``` #### 前端集成图表库 为了让数据显示得更加直观美观,可以在 Vue 中引入 ECharts 等第三方图形绘制插件来进行数据可视化的展现工作。 ```html <template> <div id="main" style="width: 600px;height:400px;"></div> </template> <script setup lang="ts"> import * as echarts from 'echarts'; import { ref } from "vue"; const mainChart = ref(null); fetchData().then(() => { const myChart = echarts.init(document.getElementById('main')); option = { title : { text: '某站点用户访问来源', subtext: '' }, tooltip : {}, legend: { data:['人数'] }, xAxis : [ { type : 'category', data : ["直接访问","邮件营销","联盟广告"] } ], yAxis : [ { type : 'value' } ], series : [ { name:'人数', type:'bar', data:[380, 192, 274] } ] }; myChart.setOption(option); }); </script> ```
评论 28
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码的女朋友

你的鼓励是我继续创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值