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

【django+vue】连接数据库、登录功能

笔记为自我总结整理的学习笔记,若有错误欢迎指出哟~

【django+vue专栏】
1.【django+vue】项目搭建、解决跨域访问

【django+vue】连接数据库、登录功能

  • django连接数据库
    • 1.安装MySQL驱动程序
    • 2.创建数据库
    • 3.配置settings.py文件
    • 4.创建表
    • 5.添加数据
  • 登录功能
    • 1.django实现登录功能
      • URL映射
      • 视图函数
    • 2.vue实现登录功能
      • 需要用到的扩展或依赖
        • vue-router
        • qs
        • less less-loader@6
      • 使用 Vue Router 的API定义路由规则和创建路由实例
      • main.js使用 Vue Router 插件
      • 登录页面组件Login.vue

django连接数据库

参考博客:
【python】Django——连接mysql数据库

https://blog.csdn.net/weixin_44319595/article/details/134411910

1.安装MySQL驱动程序

首先,确保你已经安装了适用于Python的MySQL驱动程序。

安装mysqlclient

pip install mysqlclient -i https://pypi.tuna.tsinghua.edu.cn/simple

mysqlclient #2.2.0

2.创建数据库

需要在mysql中完成
在这里插入图片描述

3.配置settings.py文件

打开你的Django项目中的settings.py文件,找到DATABASES设置部分,并进行如下配置:

DATABASES = {"default": {"ENGINE": "django.db.backends.mysql","NAME": "restaurantdb",    # 数据库名称'USER': 'root','PASSWORD': 'root', # 修改为自己的mysql密码'HOST': 'localhost','PORT': '3306',}
}

4.创建表

用户表
用户:id,用户名,密码,权限

# 在models.py中定义模型
from django.db import models# Create your models here.
class User(models.Model):id = models.AutoField(primary_key=True)username = models.CharField(max_length=50, unique=True)password = models.CharField(max_length=100)  # 实际应用中建议使用加密存储,比如 bcryptpermission = models.CharField(max_length=20)

使用Django的管理命令manage.py来执行数据库迁移操作,将模型映射到实际的数据库表。在命令行中执行以下命令:

python manage.py makemigrations # 生成数据库迁移文件

python manage.py migrate # 应用数据库迁移

生成名为myapp_user的表
在这里插入图片描述

5.添加数据

在这里插入图片描述

登录功能

在这里插入图片描述

1.django实现登录功能

URL映射

用于将特定的URL请求与相应的视图函数关联起来。例如,当用户访问"/login/"路径时,Django将调用名为"login"的视图函数来处理该请求。

urls.py

from django.urls import pathfrom myapp import viewsurlpatterns = [# path('admin/', admin.site.urls),path("login/", views.login),

视图函数

views.py

# views.py
from django.http import HttpResponse, JsonResponse
from django.views.decorators.csrf import csrf_exemptfrom myapp.models import User# Create your views here.
@csrf_exempt
def login(request):username = request.POST.get("username")password = request.POST.get("password")try:user = User.objects.get(username=username)except User.DoesNotExist:date = {'flag': 'no', "msg": "no such user"}return JsonResponse({'request': date})if password == user.password:date_msg = "Login successful"date_flag = "yes"response = JsonResponse({'request': {'flag': date_flag, 'msg': date_msg}})# 在这里设置Cookieresponse.set_cookie(key='sessionid', value='yourSessionId', httponly=True)return responseelse:date_msg = "Incorrect password"date_flag = "no"date = {'flag': date_flag, 'msg': date_msg}return JsonResponse({'request': date})

上面登录函数的示例下面是对代码的一些解释:

  1. @csrf_exempt:这个装饰器用于取消对该视图函数的CSRF保护。CSRF(Cross-Site Request Forgery)是一种攻击方式,Django通过在表单中生成和验证CSRF令牌来防止这种攻击。在某些情况下,可以使用@csrf_exempt来取消对特定视图函数的CSRF保护。
  2. def login(request):这是一个名为login的视图函数,它接收一个request参数,代表用户的HTTP请求。
  3. username = request.POST.get("username")password = request.POST.get("password"):这两行代码从POST请求中获取usernamepassword参数的值。
  4. try-except块:这里使用try语句来尝试从数据库中获取与给定username匹配的用户对象。如果用户不存在,会触发User.DoesNotExist异常,并返回一个JSON响应,指示用户不存在。
  5. 密码验证:如果用户存在,代码将检查输入的密码是否与数据库中存储的密码匹配。如果匹配成功,将返回一个JSON响应,指示登录成功,并设置一个名为sessionid的cookie,用于在用户的浏览器中存储会话ID。
  6. 密码不匹配:如果密码不匹配,将返回一个JSON响应,指示密码错误。

这段代码的主要功能是接受用户的登录请求,验证用户名和密码,并根据验证结果返回相应的JSON响应。在成功登录时,它还设置了一个sessionid cookie,用于管理用户的会话。

这只是一个简单的示例,实际的登录过程可能涉及更多安全性和验证步骤。对于真实的生产环境,建议使用Django内置的认证系统或其他验证机制来处理用户登录。

2.vue实现登录功能

需要用到的扩展或依赖

vue-router

Vue Router 是 Vue.js 的官方路由管理器。它与 Vue.js 框架深度集成,用于构建单页面应用程序(SPA)中的前端路由。

Vue Router 提供了以下主要特性:

  1. 嵌套路由:允许你在一个路由规则中嵌套另一个路由规则,从而构建复杂的页面结构和嵌套的组件关系。
  2. 路由参数:支持在路由规则中定义参数,以便在 URL 中传递数据,并在组件中进行处理。
  3. 编程式导航:提供了一组方法,允许你在 Vue 组件中进行页面跳转和导航操作。
  4. 命名路由:可以为路由规则指定名称,以便更方便地进行跳转和导航。
  5. 路由视图:通过 <router-view> 组件,实现根据当前 URL 匹配到的路由规则,自动渲染对应的组件。
  6. 导航守卫:允许你在路由切换前后执行一些逻辑,比如权限验证、页面加载状态管理等。
  7. 路由懒加载:通过动态导入组件,可以优化应用的性能,减少初始加载时间。
  8. HTML5 历史模式:支持使用 HTML5 的历史模式来实现路由,不再需要 URL 中带有 # 符号。

使用 Vue Router 可以使得在 Vue.js 应用程序中进行前端路由管理变得更加简单和灵活,同时也提供了丰富的功能和扩展性,适用于各种规模的应用程序开发。

安装vue-router

npm install vue-router

qs

在 Vue 3 中,你可以使用 qs 模块来处理查询字符串。你可以使用 npm 安装 qs 模块,然后在 Vue 3 的项目中使用它来进行查询字符串的处理。

安装 qs

npm install qs

使用 qs 模块示例

import qs from 'qs';// 创建一个包含用户名和密码的对象
const data = {username: this.loginForm.username,password: this.loginForm.password
};// 将对象转换为 URL 查询字符串
const encodedData = qs.stringify(data);// 现在 encodedData 就是 URL 编码后的字符串
// 你可以将其用于发送请求等操作

在这个示例中,我们使用了 qs.stringify 方法将一个对象转换为 URL 查询字符串的格式,并将结果保存在 encodedData 变量中。这样,你就可以在 Vue 3 项目中使用 qs 模块来处理查询字符串了。

less less-loader@6

在Vue项目中,可以使用less和less-loader@6来处理样式文件,从而提供更加灵活和可维护的样式代码。通过使用less的特性,可以减少样式代码的冗余和重复,同时也可以更方便地管理样式表的结构和层次。而less-loader@6则是将less文件编译成CSS的关键工具,它可以让开发者更加便捷地使用less语法,并将其转换为浏览器可识别的CSS格式。

在Vue项目中使用less作为样式预处理器

npm install less less-loader@6

使用 Vue Router 的API定义路由规则和创建路由实例

src下创建router.js

// 导入vue-router
import { createRouter, createWebHistory } from 'vue-router';// 导入你的组件
import HelloWorld from './components/HelloWorld.vue';
import Login from './components/Login.vue' // 引入Login组件// 定义路由规则
const routes = [{ path: '/',component: Login},{ path: '/login',component: Login},// 其他路由...
];// 创建路由实例
const router = createRouter({history: createWebHistory(),routes
});export default router;

这段代码使用 Vue Router 的 API 定义了路由规则和创建了一个路由实例。

具体来说,这段代码的作用如下:

  1. 定义了一组路由规则(routes),用于匹配不同的 URL 路径和对应的组件。每个路由规则都是一个对象,包含以下属性:
    • path:指定路由的 URL 路径;
    • component:指定匹配到该路由时要渲染的组件。
  2. 使用 createRouter API 创建了一个路由实例(router)。该实例通过传入的 routes 配置项来初始化路由规则。
  3. 通过 createWebHistory() 创建了一个 HTML5 历史模式的路由记录管理器,并将其作为参数传递给 createRouter 方法,从而创建了一个支持 HTML5 历史模式的路由实例。
  4. 最终将创建的路由实例导出,供应用程序使用。

这段代码定义了一组路由规则,并创建了一个路由实例,以便在 Vue.js 应用程序中进行前端路由管理。路由实例可以根据 URL 路径自动匹配对应的组件,并进行页面跳转和导航操作。

main.js使用 Vue Router 插件

使用 Vue Router 插件

import { createApp } from 'vue'
import App from './App.vue'
// 导入router
import router from './router.js';// createApp(App).mount('#app')
const app = createApp(App)app.use(router)

这段代码是在 Vue.js 应用程序中使用 Vue Router 插件的方式。

具体来说,它的作用如下:

  1. 使用 import 关键字导入了 router 对象,该对象是一个 Vue Router 路由实例,可以处理应用程序中的前端路由管理。
  2. 在 Vue.js 应用程序中使用 app.use() 方法,将 router 对象作为参数传递给该方法,以便在应用程序中使用 Vue Router 插件。
  3. 通过上述操作,Vue.js 应用程序就能够使用 Vue Router 提供的各种功能,比如路由跳转、导航守卫、路由参数等。

总之,这段代码是在 Vue.js 应用程序中使用 Vue Router 插件的标准方式,可以使应用程序具备前端路由管理能力,并提供一些方便的 API 来进行页面跳转和导航操作。

登录页面组件Login.vue

登录页面组件,它包含了登录表单、用户名和密码输入框、登录按钮、重置按钮等元素。该组件使用了Element UI组件库中的表单、输入框和按钮组件,同时使用了less预处理器编写样式。

数据方面

该组件定义了loginForm对象,包含了用户名和密码两个属性,设置了相应的验证规则loginRules。

在方法方面

定义了resetLoginForm方法用于重置表单内容

定义了login方法用于登录操作,并使用了$http实现异步请求,发送POST请求到后台,验证用户身份。在登录成功或失败时,该组件会进行相应的提示操作,并跳转到对应的页面。

<template><div class="login_container"><!-- 登录块 --><div class="login_box"><!-- 图标区域 --><div class="avatar_box"><img src="../assets/p.png" alt /></div><div class="text_box">餐饮管理系统</div><!--添加表单--><el-formref="loginFormRef":model="loginForm":rules="loginRules"class="login_form"label-width="0px"><!-- 用户名 --><el-form-item prop="username"><el-input v-model="loginForm.username"></el-input></el-form-item><!-- 密码 --><el-form-item prop="password"><el-input v-model="loginForm.password" type="password"></el-input></el-form-item><!-- 按钮 --><el-form-item class="btns"><el-button type="primary" @click="login">登录</el-button><el-button type="info" @click="resetLoginForm">重置</el-button></el-form-item></el-form></div></div>
</template><script>
import Qs from "qs";
export default {data() {return {loginForm: {// 表单数据username: "admin",password: "123456",},// 验证对象loginRules: {// 校验用户名username: [{ required: true, message: "请输入用户名", trigger: "blur" },{min: 4,max: 12,message: "长度在 5 到 12 个字符",trigger: "blur",},],// 校验密码password: [{ required: true, message: "请输入密码", trigger: "blur" },{ min: 6, max: 10, message: "密码为 6~10 位", trigger: "blur" },],},};},methods: {// 重置表单内容resetLoginForm() {this.$refs.loginFormRef.resetFields();},// 登录方法login() {// 验证校验规则this.$refs.loginFormRef.validate(async (valid) => {if (!valid) return; //验证失败则结束var data = Qs.stringify({username: this.loginForm.username,password: this.loginForm.password,});console.log(data);this.$http.post("/login/", data) // 访问后台.then((response) => {const result = response.data.request;if (result.flag === "yes") {// 登录成功,处理相关逻辑console.log(result.msg);document.cookie = `sessionid=${response.data.sessionid}`;// 跳转到指定页面this.$router.push("/home");} else {// 登录失败,处理相关逻辑console.log(result.msg);}}).catch((error) => {console.error(error);});});},},
};
</script><style lang="less" scoped>
// 根节点样式
.login_container {background-color: #79abde;height: 100%;
}.login_box {width: 450px;height: 300px;background-color: #fff;border-radius: 3px; // 圆角position: absolute; // 绝对定位left: 50%;top: 50%;transform: translate(-50%, -50%); // 根据自己位置 以自己为长度位移.avatar_box {width: 130px;height: 130px;border: 1px solid #eee;border-radius: 50%; // 加圆角padding: 10px;box-shadow: 0 0 10px #ddd; // 盒子阴影position: absolute;left: 50%;transform: translate(-50%, -50%);background-color: rgba(109, 109, 196, 0.544);img {width: 100%;height: 100%;border-radius: 50%; // 加圆角background-color: #eee;}}.text_box {padding: 90px 0 0 150px;font-size: 25px;}.btns {padding: 0 0 0 140px;}.login_form {position: absolute;bottom: 0%;width: 100%;padding: 0 10px;box-sizing: border-box; // 设置边框}
}
</style>

实现效果:

在这里插入图片描述

相关文章:

【django+vue】连接数据库、登录功能

笔记为自我总结整理的学习笔记&#xff0c;若有错误欢迎指出哟~ 【djangovue专栏】 1.【djangovue】项目搭建、解决跨域访问 【djangovue】连接数据库、登录功能 django连接数据库1.安装MySQL驱动程序2.创建数据库3.配置settings.py文件4.创建表5.添加数据 登录功能1.django实现…...

NX二次开发UF_CSYS_edit_matrix_of_object 函数介绍

文章作者&#xff1a;里海 来源网站&#xff1a;https://blog.csdn.net/WangPaiFeiXingYuan UF_CSYS_edit_matrix_of_object Defined in: uf_csys.h int UF_CSYS_edit_matrix_of_object(tag_t object_id, tag_t matrix_id ) overview 概述 Updates the specified coordinat…...

封装公共el-form表单

1.公共表单组件 //commonForm.vue <script> import {TEXT,SELECT,PASSWORD,TEXTAREA,RADIO,DATE_PICKER } from /conf/uiTypes import { deepClone } from /utils export default {name: GFormCreator,props: {config: { // title/itemstype: Object,required: true}}…...

OpenHarmony-4.0-Release 源码编译记录

本文基于 Ubuntu 20.04.4 LTS 1、环境准备 这个没啥好说的&#xff0c;都是搞机的&#xff0c;用之前编译 aosp 的 linux 环境就行&#xff0c;有小伙伴担心会把之前的环境搞崩&#xff0c; 也有用 docker 编译的&#xff0c;我这里就直接在 aosp 环境下搞了&#xff0c;还省…...

HTML新手入门笔记整理:块元素和行内元素

块元素 在HTML中&#xff0c;块元素在浏览器显示状态下独占一行&#xff0c;并且排斥其他元素与其位于一行。一般情况下&#xff0c;块元素内部可以容纳其他块元素和行内元素。 常见块元素 块元素 说明 h1~h6 标题元素 p 段落元素 div div元素 hr 水平线 ol 有序列…...

Hook+jsdom 解决cookie逆向

前言 记录下如何破cookie逆向 目标 目标网址:https://q.10jqka.com.cn/ 目标接口:http://q.10jqka.com.cn/index/index/board/all/field/zdf/order/desc/page/2/ajax/1/ 对抗:cookie反爬虫处理,关键字v,如图 解决步骤 1、JS中关键字查找 如上,我们找到了关键字 v,…...

【封装UI组件库系列】封装Icon图标组件

封装UI组件库系列第三篇封装Icon图标组件 &#x1f31f;前言 &#x1f31f;封装Icon 1.创建Icon组件 2.引用svg图标库 第一步 第二步 第三步 3.二次封装 4.封装自定义属性 &#x1f31f;总结 &#x1f31f;前言 在前端开发中&#xff0c;大家可能已经用过各种各样的UI组…...

STM32:基本定时器原理和定时程序

一、初识定时器TIM 定时器就是计数器&#xff0c;定时器的作用就是设置一个时间&#xff0c;然后时间到后就会通过中断等方式通知STM32执行某些程序。定时器除了可以实现普通的定时功能&#xff0c;还可以实现捕获脉冲宽度&#xff0c;计算PWM占空比&#xff0c;输出PWM波形&am…...

EntityFramework 批量删除操作

刚刚开始使用Entityframwork 来操作数据库。遇到了批量删除数据。 EF内部用的方法是&#xff1a;dbcontext.Datas.RemoveRange(list); 这总方法&#xff0c;少量数据是可行的。 但遇到大数据量的时候&#xff0c;这个方法完全不能用。 所以找了另一种方法&#xff1a; stri…...

springboot使用的设计模式

设计模式是在软件设计中常用的一些通用解决方案。在开发商城编码时&#xff0c;以下设计模式可能会有用&#xff1a; 工厂模式&#xff08;Factory Pattern&#xff09;&#xff1a; 用于创建对象的模式。在商城中&#xff0c;可能会涉及到创建不同类型的商品、订单等对象&…...

IP地址定位技术发展与未来趋势

随着互联网的快速发展&#xff0c;人们对网络的需求和依赖程度越来越高。在海量的网络数据传输中&#xff0c;IP地址定位技术作为网络安全与信息追踪的重要手段&#xff0c;其精准度一直备受关注。近年来&#xff0c;随着技术的不断进步&#xff0c;IP地址定位的精准度得到了显…...

AI与交通运输

人工智能&#xff08;AI&#xff09;正在改变几乎所有行业&#xff0c;交通运输也不例外。 虽然与某些行业相比&#xff0c;我们运输货物和乘客的方式在过去 50 年里变化相对较小&#xff0c;但人工智能有望引发一场运输革命—如果你正在寻找人工智能的机会&#xff0c;不要错过…...

window.requestAnimationFrame+localStorage+canvas实现跨窗口小球连线效果

文章目录 前言效果代码后言 前言 hello world欢迎来到前端的新世界 &#x1f61c;当前文章系列专栏&#xff1a;前端系列文章 &#x1f431;‍&#x1f453;博主在前端领域还有很多知识和技术需要掌握&#xff0c;正在不断努力填补技术短板。(如果出现错误&#xff0c;感谢大家…...

使用AndResGuard报错:copy res file not in resources.arsc file:Ezi.xml

Android使用AndResGuard进行资源混淆&#xff0c;压缩。 源码地址&#xff1a;GitHub - shwenzhang/AndResGuard: proguard resource for Android by wechat team 集成完成后编译过程中出现如下错误&#xff1a; 14:57:05 copy res file not in resources.arsc file:IUk.xml…...

插入排序(形象类比)

最近在看riscv手册的时候&#xff0c;里面有一段代码是插入排序&#xff0c;但是单看代码的时候有点迷&#xff0c;没看懂咋操作的&#xff0c;后来又查资料复习了一下&#xff0c;最终才把代码看明白&#xff0c;所以写篇博客记录一下。 插入排序像打扑克牌 这是我听到过比较形…...

ElasticSearch 同步的方式

ElasticSearch 同步的方式 ElasticSearch是一款强大的分布式搜索和分析引擎&#xff0c;支持多种方式同步数据和日志。下面介绍几种常见的同步方式&#xff1a; 1. Logstash Logstash 是 ElasticStack 的一部分&#xff0c;用于收集、处理和转发日志和事件数据。通过配置 Lo…...

easyExcel实现分批导入,动态表头分批导出,以及导出表格样式设置

<dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.2.6</version></dependency> 一&#xff0c;分批导入 1.首先配置表格头映射类 Getter Setter EqualsAndHashCode public class …...

Android BottomNavigationView底部菜单栏文字显示问题

1. BottomNavigationView 如果tab栏数据小于等于3个&#xff0c;那么图标和文字都是展示出来&#xff1b; 2. BottomNavigationView 如果tab栏数据大于3个&#xff0c;那么图标会显示出来&#xff0c;但是文字会隐藏&#xff1b; 3. 解决方式&#xff1a; &#xff08;当底部…...

从零开始学习typescript——运算符(条件运算法、逻辑运算符、类型运算符、位运算)

条件运算符 条件运算符是一个根据条件返回不同运算结果的运算符 关键字&#xff1a;?: 三元运算符 它可以换成if …else 判断 ? true &#xff1a; false 判断为true&#xff0c;返回&#xff1f;号后面的&#xff0c;判断为false ,返回&#xff1a; 号后面的 逻辑运算符 用…...

【开源】基于Vue.js的康复中心管理系统

项目编号&#xff1a; S 056 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S056&#xff0c;文末获取源码。} 项目编号&#xff1a;S056&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 普通用户模块2.2 护工模块2.3 管理员…...

通过Wrangler CLI在worker中创建数据库和表

官方使用文档&#xff1a;Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后&#xff0c;会在本地和远程创建数据库&#xff1a; npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库&#xff1a; 现在&#xff0c;您的Cloudfla…...

2.Vue编写一个app

1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...

微信小程序 - 手机震动

一、界面 <button type"primary" bindtap"shortVibrate">短震动</button> <button type"primary" bindtap"longVibrate">长震动</button> 二、js逻辑代码 注&#xff1a;文档 https://developers.weixin.qq…...

多模态大语言模型arxiv论文略读(108)

CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题&#xff1a;CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者&#xff1a;Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...

佰力博科技与您探讨热释电测量的几种方法

热释电的测量主要涉及热释电系数的测定&#xff0c;这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中&#xff0c;积分电荷法最为常用&#xff0c;其原理是通过测量在电容器上积累的热释电电荷&#xff0c;从而确定热释电系数…...

基于Java+MySQL实现(GUI)客户管理系统

客户资料管理系统的设计与实现 第一章 需求分析 1.1 需求总体介绍 本项目为了方便维护客户信息为了方便维护客户信息&#xff0c;对客户进行统一管理&#xff0c;可以把所有客户信息录入系统&#xff0c;进行维护和统计功能。可通过文件的方式保存相关录入数据&#xff0c;对…...

4. TypeScript 类型推断与类型组合

一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式&#xff0c;自动确定它们的类型。 这一特性减少了显式类型注解的需要&#xff0c;在保持类型安全的同时简化了代码。通过分析上下文和初始值&#xff0c;TypeSc…...

LCTF液晶可调谐滤波器在多光谱相机捕捉无人机目标检测中的作用

中达瑞和自2005年成立以来&#xff0c;一直在光谱成像领域深度钻研和发展&#xff0c;始终致力于研发高性能、高可靠性的光谱成像相机&#xff0c;为科研院校提供更优的产品和服务。在《低空背景下无人机目标的光谱特征研究及目标检测应用》这篇论文中提到中达瑞和 LCTF 作为多…...

保姆级【快数学会Android端“动画“】+ 实现补间动画和逐帧动画!!!

目录 补间动画 1.创建资源文件夹 2.设置文件夹类型 3.创建.xml文件 4.样式设计 5.动画设置 6.动画的实现 内容拓展 7.在原基础上继续添加.xml文件 8.xml代码编写 (1)rotate_anim (2)scale_anim (3)translate_anim 9.MainActivity.java代码汇总 10.效果展示 逐帧…...

数据结构:泰勒展开式:霍纳法则(Horner‘s Rule)

目录 &#x1f50d; 若用递归计算每一项&#xff0c;会发生什么&#xff1f; Horners Rule&#xff08;霍纳法则&#xff09; 第一步&#xff1a;我们从最原始的泰勒公式出发 第二步&#xff1a;从形式上重新观察展开式 &#x1f31f; 第三步&#xff1a;引出霍纳法则&…...