fantastic-admin前端+django后端,初始化全流程记录

news2024/11/15 12:32:14

fantastic-admin前端是我目前看到最完善的前端框架,只需要简单的设置就可以快速开始项目。

但是我本人的能力有限,对前端知识一知半解,之前废了九牛二虎之力才跑通了前后端流程,由于新的项目需要,有了开发新后台的想法,正好fantastic-admin发布了4.11.0,我就想重新走一遍初始化流程,一个是把之前一知半解的东西再搞搞,另外就是记录下前后端对接的流程,也许以后还用的上,也少走弯路。

废话不说,先看效果,我只是把前后端流程跑通,没有增加任何功能在里面。

居中布局

左侧布局

右侧布局

新版本重新做了登录界面,支持左,中,右的布局,个人感觉非常专业,尤其是将图片换成视频以后,更是显得高大上,这块源文件里没有提供示例,简单修改一下即可。

----------  下面开始前后端对接流程  ----------

1、fantastic前端的启动方法

1.1、下载前端的源代码,选择核心不带示例程序的那个(带示例的没法打包);

1.2、拷贝到指定目录,然后在 fantastic 目录下执行 pnpm install ,安装基础依赖包;

1.3、运行 pnpm run build,查看打包的状态,看看有没有出错;

1.4、运行 pnpm run dev,打开应用界面,查看是否可以正常运行;

1.5、按照示例要求修改路由,将路由的内容改为我希望的内容,位置在 /src/router 

  • 由里的 name 值不能重复,否则会报错,或者出现页面 404 的情况,这个在复制一个路由文件的时候经常出现;
  • 路由的具体实现方法,请参考fantastic-admin的帮助文档

1.6、调整根目录下的 .env.development 文件

  • 修改 VITE_APP_TITLE 为产品名称;
  • 修改 VITE_APP_API_BASEURL 为后台地址,如果对应本地的 django 就是 http://127.0.0.1:8000/
  • 生产环境暂不考虑;
  • 这是页面还能正常显示,因为请求还没有切换到后台。

---------- 前端不改动代码部分完成,后续为个性化设置 ----------

我的后端使用的是 django,主要是前后端分离,用django可以省很多时间

2、django 后端启动方法

2.1、准备新建一个django程序 在当前目录键入命令建立一个项目叫 all_in_one;

django-admin startproject all_in_one 

2.2、新建一个应用,如crm 键入;

cd all_in_one;
python3 manage.py startapp crm
  • 这样就新建了一个应用,可以以此类推新建多个应用;

2.3、将系统的默认配置写入数据库,默认为sqlite;

python3 manage.py migrate

2.4、启动程序,现实下面信息即表示启动成功;

 python3 manage.py runserver 

2.5、修改 /all_in_one/setting.py 文件,这里的设置实际上只是看下默认页面的效果,对实际使用没有影响

2.6、修改 /all_in_one/urls.py 文件,内容如下:

2.7、将 urls.py 文件拷贝到 crm policy pricelist 目录下,内容为:

2.8、在相应文件的 /crm/views.py 中添加函数,如下:

def default_api(request: HttpRequest) -> str :

	# 从POST请求的body中获取JSON数据
	response_data = {}
	response_data['status'] = 'OK'
	return JsonResponse(response_data, status=200)

这个函数不是完整版,有些不明白的后面会有所说明

2.9、在浏览器访问这个链接 http://127.0.0.1:8000/crm/default 在 django 控制台上能看到响应,浏览器上看到返回的 json 即表示配置成功;

3、前后端联调。

3.1、后端安装 django 的 cors插件

pip3 install django-cors-headers

安装完后在setting.py中添加中间件及跨域许可

        MIDDLEWARE = [
            ...
            # cors 中间件
            'corsheaders.middleware.CorsMiddleware',
            'django.middleware.common.CommonMiddleware',
        ]
        # 设置允许跨域请求的来源
        CORS_ORIGIN_WHITELIST = [
            'http://localhost:9000',  # 允许来自 localhost:9000 的请求
            'http://127.0.0.1:9000',  # 可以同时指定 http 和 https 协议
            # 如果需要允许任意来源,可以使用下面的设置
            # 'http://*',
            # 'https://*',
        ]

3.2、修改后端函数代码,将之间只是简单的看效果的函数修改为响应需求的函数

from django.shortcuts import render

# Create your views here.
import json
from django.http import JsonResponse, HttpResponse
from django.views.decorators.csrf import csrf_exempt  
from django.views.decorators.http import require_http_methods
from django.http import HttpRequest, JsonResponse

@csrf_exempt
@require_http_methods(["POST"])  # 确保这个视图只接受POST请求
def default_api(request: HttpRequest) -> str :

	# 从POST请求的body中获取JSON数据
	body_unicode = request.body.decode('utf-8')  # 将bytes类型的body转换为unicode
	data = json.loads(body_unicode)  # 将unicode转换为Python字典
	account = data.get('account', '')
	password = data.get('password', '')
	print(account)
	print(password)

	response_data = {}
	response_data['status'] = '1'
	response_data['error'] = ''
	response_data['data'] = {}
	response_data['data']['account'] ='admin'
	response_data['data']['token'] = '12345'
	response_data['data']['avatar'] = ''
	print(response_data)
	return JsonResponse(response_data, status=200)

解释一下这个函数的作用

@csrf_exempt

@require_http_methods(["POST"])  # 确保这个视图只接受POST请求

后面response_data的格式是前端规定好的,在官方帮助文档 在/src/api/index.ts的拦截器里有说明

    /**
     * 全局拦截请求发送后返回的数据,如果数据有报错则在这做全局的错误提示
     * 假设返回数据格式为:{ status: 1, error: '', data: '' }
     * 规则是当 status 为 1 时表示请求成功,为 0 时表示接口需要登录或者登录状态失效,需要重新登录
     * 请求出错时 error 会返回错误信息
     */

在 /src/store/modules/user.ts 里,如下图,需要从返回信息里获取account,token,avatar三个值,其中avatar是头像,返回空链接的话系统会替换上一个默认头像

* 这里的 account ,token,avatar 信息很重要,如果不是这个格式,即使用户信息验证正确,系统会默认跳转到登录页。

3.3、调整api的访问,文件在/src/api/modules/user.ts,如下图

只需将baseURL 注销,即可访问地址就是在 django 后台设置的二级链接,这时点击登录,系统会直接跳转到后台的默认界面。前后端对接完成。

划重点:总结

1、一定要详细的看官方帮助文件,里面有很多信息尤其是对第一次使用的人而言非常重要,我这个流程里回避了很多可能出现的问题,如果不看文档,会有方方面面的问题;

2、有关 django的内容我没有详细写,默认读者是了解django的基本概念的,在这里我只用了django 的url 和views 的部分,实现了前后端分离,至于其他功能,需自行学习;

3、之所以写这个文章个人感觉主要是提炼官方帮助文档里没说清的一些内容,把主线流程梳理清楚,方便快速上手。

4、建议大家多多支持国内的个人开发者,如 fantastic-admin 这样的好产品,送人玫瑰手留余香。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2110652.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

了解PD快充协议和QC快充协议

PD快充协议的实现依赖充电器与设备之间的通信协议,这种通信协议确保了充电器能够提供设备所需要的特定电压和电流。在快充技术中快充协议起到关键角色。 现在市面上最常见的快充协议有PD、QC、华为FCP/SCP、三星AFC协议 、VOOC闪充。PD和QC 协议属于公用协议 。华…

C/C++经典排序问题,sort函数使用

目录 1. 前言 2. 正文 2.1 问题 2.2 解决办法 2.2.1 思路 2.2.2 代码实现 2.2.3 测试结果 3. 备注 1. 前言 大家在学习C语言的时候,是不是经常被排序算法折磨的很难那首,其实都是但是在C中有专门的,排序函数,而且支持自定…

vue系统获取授权平台授权码实现单点登录、注销功能

公司平台需要对接别的平台 实现单点登录 注销。简而言之,不需要在自己公司系统登录 统一在别的平台登录后获取到登录凭证(授权码) 在本公司系统实现免密登录的功能。 流程: 跳转授权页面和保存授权码的代码: hrefLog…

模型融合创新性好强!最新成果直接登顶SOTA,分分钟拿下顶会

Transformer作者创业新成果火了!他们提出了一个70亿参数的日语数学大模型,直接打败700亿参数的Llama-2取得SOTA!更牛的是,得出这样的模型无需任何梯度训练,所需计算资源大大减少。 这种炸裂的成果得益于模型融合&…

C++模板(初识)

一、泛型编程 我们平时写交换函数的时候,会这样写: //交换两个int类型变量 void Swap(int& left, int& right) {int temp left;left right;right temp; } //交换两个double类型变量 void Swap(double& left, double& right) {doubl…

随着人们网络安全意识提高,软件架构设计与评估也成为重中之重

目录 案例 【题目】 【问题 1】(13 分) 【问题 2】(12分) 【答案】 【问题 1】答案 【问题 2】答案 相关推荐 案例 阅读以下关于软件架构设计与评估的叙述,回答问题 1 和问题 2。 【题目】 某电子商务公司为正更好地管理用户,提升企业销售业绩&…

Linux中Ubuntu系统安装Windows得字体

背景 安装了geoserver 然后geoserver中需要用到微软雅黑字体 所以需要安装一下Linux系统安装Windows中的字体 创建字体目录 cd /usr/share/fonts/ mkdir winfont在Windows找到对应字体 C:\Windows\Fonts 复制该字体到桌面 Linux系统中上传字体 roottest-server03:/usr/sha…

一键解决物流追踪难题:批量查询工具助力电商运营

探索固乔科技,解锁高效物流查询新纪元!固乔快递批量查询助手,一款专为电商、物流从业者及自媒体人打造的神器,让繁琐的物流追踪变得轻松快捷。 想象一下,万级单号批量导入,仅需5分钟,所有物流动…

如何利用mHand Pro动捕数据手套连接虚拟与现实?

数据手套作为虚拟现实中的一种交互动捕设备,能够模拟真人手部的动作和感知反馈,实现人机交互的效果。随着虚拟现实技术的不断发展,数据手套也在不断地改进和升级。 mHand Pro是一款由拥有多年经验的惯性动作捕捉技术团队广州虚拟动力研发的数…

第142天: 内网安全-权限维持黄金白银票据隐藏账户C2 远控RustDeskGotoHTTP

案例一: 内网域&单机版-权限维持-基于用户-隐藏用户 项目下载地址: GitHub - wgpsec/CreateHiddenAccount: A tool for creating hidden accounts using the registry || 一个使用注册表创建隐藏帐户的工具 用这个工具的话在域中会把它加入adminis…

会声会影哪个版本最好用?

会声会影哪个版本最好用? 会声会影2023这个版本是最受欢迎的,它为多数用户提供了稳定且强大的功能。以下是关于为什么这个版本最好用的 一、功能丰富 会声会影X系列版本拥有从视频剪辑、音频编辑到特效添加等全方位的功能。用户可以轻松完成视频的录制、剪辑、转…

SAP ABAP 程序迁移工具 SAPLINK ABAP GIT

SAP ABAP 程序迁移工具 SAPLINK ABAP GIT 1. saplink 这个工具功能挺强大的. 但是使用起来有点麻烦, 需要针对不同的开发对象导入不同的插件.才能处理特定的对象. 而且版本还在不断变化. saplink 项目地址:https://github.com/sapmentors/SAPlink saplink plugin…

鸿蒙轻内核M核源码分析系列六 任务及任务调度(1)任务栈

往期知识点记录: 鸿蒙(HarmonyOS)应用层开发(北向)知识点汇总 持续更新中…… 继续分析鸿蒙轻内核源码,我们本文开始要分析下任务及任务调度模块。首先,我们介绍下任务栈的基础概念。任务栈是高…

SpringBoot整合Minio及阿里云OSS(配置文件无缝切换)

SpringBoot整合Minio及阿里云OSS 文章目录 SpringBoot整合Minio及阿里云OSS1.Minio安装测试1.Docker安装启动容器 2.创建bucket3.上传文件修改权限 2.SpringBoot整合Minio及阿里云OSS1.公共部分抽取2.Minio配置整合1.添加pom依赖2.添加配置文件3.操作接口实现 3.阿里云OSS配置整…

Class4——Esp32|Thonny两种方式同过电脑控制LED灯,路由器与电脑自带热点连接ESP32

上一节我们通过路由器和设备创建了连接,不懂可按上节配置 Class3——Esp32|Thonny——网络连接主机-wifi连接(源代码带教程)-CSDN博客文章浏览阅读57次。Esp32|Thonny网络连接主机-wifi连接(源代码带教程)https://blo…

免费开源的低代码表单FormCreate安装教程,支持可视化设计,适配移动端

低代码表单FormCreate 是一个可以通过 JSON 生成具有动态渲染、数据收集、验证和提交功能的表单生成组件。它支持 6 个 UI 框架,适配移动端,并且支持生成任何 Vue 组件。内置 20 种常用表单组件和自定义组件,再复杂的表单都可以轻松搞定 源码…

网页时装购物:Spring Boot框架的创新应用

第2章相关技术 2.1 B/S架构 B/S结构的特点也非常多,例如在很多浏览器中都可以做出信号请求。并且可以适当的减轻用户的工作量,通过对客户端安装或者是配置少量的运行软件就能够逐步减少用户的工作量,这些功能的操作主要是由服务器来进行控制的…

时尚购物革命:Spring Boot技术在网页时装系统中的应用

第1章 绪论 1.1背景及意义 随着社会的快速发展,计算机的影响是全面且深入的。人们生活水平的不断提高,日常生活中人们对时装购物系统方面的要求也在不断提高,喜欢购物的人数更是不断增加,使得时装购物系统的开发成为必需而且紧迫的…

Rspack 1.0 发布了!

文章来源|Rspack Team 项目地址|https://github.com/web-infra-dev/rspack Rspack 是基于 Rust 编写的下一代 JavaScript 打包工具, 兼容 webpack 的 API 和生态,并提供 10 倍于 webpack 的构建性能。 在 18 个月前,我…

深度学习 --- VGG16能让某个指定的feature map激活值最大化图片的可视化(JupyterNotebook实战)

VGG16能让某个指定的feature map激活值最大化图片的可视化 在前面的文章中,我用jupyter notebook分别实现了,预训练好的VGG16模型各层filter权重的可视化和给VGG16输入了一张图像,可视化VGG16各层的feature map。深度学习 --- VGG16卷积核的可…