基于Pycharm和Django模型技术的数据迁移
1.配置数据库
在trip_server/settings.py中修改配置:
其格式可访问官网:Settings | Django documentation | Django
1.1 配置数据库
文件地址:trip_server/settings.py
配置前需要创建(NaviCat)个人数据库
"ENGINE": "django.db.backends.mysql" #数据库驱动
"NAME": "trip_django1" #库名(自设)
"USER": "root" #登录数据库用户名
"PASSWORD": "888888" #登录数据库密码(自设)
"HOST": "localhost" #数据库的ip地址
"PORT": "3306" #数据库端口号,允许穿过防火墙(默认)
DATABASES = {#默认连接的数据库"default": {"ENGINE": "django.db.backends.mysql","NAME": "trip_django1","USER": "root","PASSWORD": "888888","HOST": "localhost","PORT": "3306",}
}
1.2 引入数据库依赖
文件地址:trip_server/settings.py
from pathlib import Path
#引入数据库依赖
import pymysql
pymysql.install_as_MySQLdb()# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent
2.新建system模块并建立模型
2.1 在终端中建表
python manage.py startapp system
2.2 建立模型
文件地址:system/models.py
from django.db import models
# Create your models here.
#数据库中表的映射类,根据该文件构建及操作数据库
class Slider(models.Model):"轮播图"name = models.CharField('名称',max_length=32)desc = models.CharField('描述',max_length=100, null=True, blank=True)types = models.SmallIntegerField("展现的位置",default=10)img = models.ImageField('图片地址',max_length=255, upload_to='%Y%m/slider')reorder = models.SmallIntegerField('排序字段',default=0,help_text="数字越大越靠前")start_time = models.DateTimeField('生效开始时间',null=True, blank=True)end_time = models.DateTimeField('生效结束的时间',null=True, blank=True)target_url = models.CharField('跳转的地址',max_length=255, null=True, blank=True)is_valid = models.BooleanField('是否有效',default=True)created_at = models.DateTimeField('创建时间',auto_now_add=True)updated_at = models.DateTimeField('修改时间',auto_now=True)
class Meta:db_table = 'system_slider'ordering = ['-reorder']#默认排序规则
2.3 配置system模块
文件地址:trip_server/settings.py
INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles',#Here👇'system.apps.SystemConfig',#Here👆
]
2.4 在数据库中创新列表
在NaviCat中创建mysql表格。
2.5 检查运行
python manage.py check
python manage.py makemigrations
python manage.py migrate
2.6 配置视图函数
文件地址:system/views.py
创建视图函数,用于返回轮播数据列表【def】
queryset = Slider.objects.filter(is_valid=True):
对数据源(数据库里的数据)进行过滤,相当于在sql语句中加where条件
for item in queryset:
对结果集进行遍历,将数据封装至objects中
return http.JsonResponse(data):
返回一个json格式的对象,json是标准的网络传输数据的格式
return HttpResponse(data)
from django import http
from django.shortcuts import render
from system.models import Slider# Create your views here.
def slider_list(request):#规范响应数据结构data = {'meta':{},'objects':[]}queryset = Slider.objects.filter(is_valid=True)for item in queryset:data['objects'].append({'id': item.id,'img_url': item.img.url,'target_url': item.target_url,'name': item.name})return http.JsonResponse(data)
2.7 暴露地址
该文件用于暴露视图函数的链接地址
path配置具体的函数地址:
参数1:自定义访问地址;
参数2:访问视图函数的位置;
参数3:链接名字。
from django.urls import path
from system import views
#配置访问地址列表
urlpatterns= [path('slider/list/',views.slider_list,name='slider_list')
]
2.8 定义项目的URL路由
将路径'system/'
映射到system
应用的URL配置。
from django.contrib import admin
from django.urls import path,includeurlpatterns = [path('admin/', admin.site.urls),#here~👇path('system/', include('system.urls')),#here~👆
]
3.设计景点ORM模型
终于联动网页了(*硬撑)
python manage.py startapp sight
3.1 景点模块数据准备
文件地址:sight/models.py
from django.db import models# Create your models here.
class Sight(models.Model):""" 景点基础信息 """name = models.CharField('名称', max_length=64)desc = models.CharField('描述', max_length=256)main_img = models.ImageField('主图', upload_to='%Y%m/sight/', max_length=256)banner_img = models.ImageField('详情主图', upload_to='%Y%m/sight/', max_length=256)content = models.TextField('详细')score = models.FloatField('评分', default=5)min_price = models.FloatField('最低价格', default=0)province = models.CharField('省份', max_length=32)city = models.CharField('市区', max_length=32)area = models.CharField('区/县', max_length=32, null=True)town = models.CharField('乡镇', max_length=32, null=True)is_top = models.BooleanField('是否为精选景点', default=False)is_hot = models.BooleanField('是否为热门景点', default=False)is_valid = models.BooleanField('是否有效', default=True)created_at = models.DateTimeField('创建时间', auto_now_add=True)updated_at = models.DateTimeField('修改时间', auto_now=True)class Meta:db_table ='sight'ordering = ['-updated_at']
3.2 配置system模块
文件地址:settings.py
INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','system.apps.SystemConfig',#Here👇'sight.apps.SightConfig'#Here👆
]
3.3 检查运行
python manage.py check
python manage.py makemigrations
python manage.py migrate
在NaviCat中刷新后可看到,新创建了的“sight”:
3.4 配置视图函数
文件地址:sight/views.py
class SightListView(ListView):#该类用于查询景点列表信息
paginate_by = 5:#初始每页放5条数据
def get_queryset(self): #根据条件查询数据
query = Q(is_valid=True) #重写查询方法:1. Q查询条件:该对象可以拼接多个条件 2. is_valid=True:表中is_valid列,有值则被查询出来
----------------><----------------
def render_to_response(self, context, **response_kwargs):
def render_to_response:用于响应数据;
context类的上下文对象:
记录类的属性列表,其中包含了ListView子类SightList的所有属性及数据
page_obj = context['page_obj']:#利用上下文对象获取页面信息
from django.shortcuts import render
from django import http
from django.db.models import Q
from django.views.generic import ListView
from sight.models import Sight# Create your views here.
class SightListView(ListView):paginate_by = 5def get_queryset(self):query = Q(is_valid=True)#1.获得热门景点is_hot = self.request.GET.get('is_hot',None)if is_hot:query = query & Q(is_hot=True)#2.获得精选景点is_top = self.request.GET.get('is_top',None)if is_top:query = query & Q(is_top=True)#3.景点名称搜索queryset = Sight.objects.filter(query)return querysetdef render_to_response(self, context, **response_kwargs):page_obj = context['page_obj']#合成响应数据data = {'meta':{'total_count':page_obj.paginator.count,'page_count':page_obj.paginator.num_pages,'current_page':page_obj.number,},'objects':[],}for item in page_obj.object_list:data['objects'].append({'id':item.id,'name':item.name,'main_img':item.main_img.url,'min_price':item.min_price,'score':item.score,'province':item.province,'city':item.city,'comment_count':0})return http.JsonResponse(data)
3.5 暴露地址
文件地址:sight/urls.py
from django.urls import path
from sight import viewsurlpatterns = [path('/sight/list/', views.SightListView.as_view(), name='sight_list')
]
3.6 定义项目的URL路由
文件地址:trip_server/urls.py
from django.contrib import admin
from django.urls import path,includeurlpatterns = [path('admin/', admin.site.urls),path('system/', include('system.urls')),#here~👇path('sight',include('sight.urls')),#here~👆
]
3.7 运行
端口号:http://localhost:8000/
4.Apifox
3.1 新建项目:
3.2 新建目录
3.3 填写端口号
3.4 输出结果
参数名可调,如page页数等;参数值1,即第1页。
相关文章:

基于Pycharm和Django模型技术的数据迁移
1.配置数据库 在trip_server/settings.py中修改配置: 其格式可访问官网:Settings | Django documentation | Django 1.1 配置数据库 文件地址:trip_server/settings.py 配置前需要创建(NaviCat)个人数据库 "…...

乐尚代驾-----Day10(订单三)
hi UU 们!!!我又来跟辛辣!感谢你们的观看,话不多说!~ 司机到达代驾终点,代驾结束了。结束代驾之后, – 获取额外费用(高速费、停车费等) – 计算订单实际里程…...

105. 聚光源SpotLight
入门部分给大家介绍过平行光DirectionalLight、点光源PointLight、环境光AmbientLight,下面给大家介绍一个新的光源对象,也就是聚光源SpotLight。 创建聚光源SpotLight 聚光源可以认为是一个沿着特定方会逐渐发散的光源,照射范围在三维空间中构成一个圆…...
系统接口权限拦截器,获取用户信息存储
UserInfo 类 这是一个表示用户信息的 Java 类,使用了 Lombok 注解来简化代码编写。 import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString;import java.io.Serializable; import java.util.List;Data ToString EqualsAndHashCode public…...
Chromium HTML5 新的 Input 类型color 对应c++
一、Input 类型: color color 类型用在input字段主要用于选取颜色,如下所示: <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>菜鸟教程(runoob.com)</title> </head> <body&…...
问:SQL中的通用函数及用法?
SQL函数是在SQL语句中使用的预定义的计算工具,可以对一列数据进行操作并返回一个单一的结果。这些函数大致可以分为两类:Aggregate函数和Scalar函数。Aggregate函数对一组值执行计算,并返回单个值,如求和、平均值、最大值和最小值…...

.NET Core WebApi第6讲:WebApi的前端怎么派人去拿数据?(区别MVC)
一、前端界面小基础 head:引入CSS, 引入JS是写在head里面。 body:眼睛肉眼能看到的用户展示的界面是写在body里面。 二、前端怎么派人去拿数据? 1、MVC:前后端不分离,MVC相比WebApi只是多了一个views的文件夹 &am…...
Chromium HTML5 新的 Input 类型date 对应c++
一、Input 类型: date date 类型允许你从一个日期选择器选择一个日期。 <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>test</title> </head> <body><form action"demo-form.php"…...
ZooKeeper的应用场景:深入探讨分布式系统中的多样化应用
Apache ZooKeeper 是一个开源的分布式协调服务,专为确保分布式系统中的高可用性和一致性而设计。在现代分布式应用程序中,协调、同步和管理是实现高效和可靠服务的关键部分,而 ZooKeeper 通过提供这些基础功能而成为许多分布式系统不可或缺的…...

【Vue3】第四篇
Vue3学习第四篇 01. 插槽Slots02. 插槽Slots(续集)03. 插槽Slots(再续集)04. 组件生命周期05. 生命周期应用06. 动态组件07. 组件保持存活08. 异步组件09. 依赖注入10. Vue应用 01. 插槽Slots 模板内容:html结构&#…...

Chromium HTML5 新的 Input 类型tel对应c++
一、Input 类型: tel <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>test</title> </head> <body><form action"demo-form.php">电话号码: <input type"tel" name…...

JVM—类加载器、双亲委派机制
目录 什么是类加载器 类加载器的分类 Bootstrap启动类加载器 通过启动类加载器加载用户jar包 Extension扩展类加载器和Application应用程序类加载器 通过扩展类加载器加载用户jar包 双亲委派机制 打破双亲委派机制 自定义类加载器 线程上下文类加载器 Osgi框架的类加…...
笔试题 求空格分割的英文句子中,最大单词长度。
求空格分割的英文句子中,最大单词长度。例如:“this is a word”,最大单词长度为4。要求:不能用 split 函数对字符串进行切分,算法复杂度为o(n) public class MaxWordLength { public static int maxWordLength(String sentence) { if (se…...

【笔记】大模型长度外推技术 NTK-Aware Scaled RoPE
NTK-Aware Scaled RoPE 正弦编码(Sinusoidal)旋转位置编码RoPE编码步骤:旋转位置编码的优势 NTK-Aware Scaled RoPE直接外推线性内插进制转换高频外推、低频内插的理解位置编码 总结参考: 长度外推技术是自然语言处理(NLP)领域中&…...

前端 eslint 配置,以及在git提交之前自动format
目录 1、配置eslint步骤 1、eslint安装配置步骤 2、配置scripts步骤 3、测试eslint 2、配置git-hook1、安装环境2、最终效果 众所周知,前端项目可以在报很多error的情况下运行。但是良好的代码规范仍然有利于项目的开发维护,这里提供我的规范,…...

2024.10.9华为留学生笔试题解
第一题无线基站名字相似度 动态规划 考虑用动态规划解决 char1=input().strip() char2=input().strip() n,m=len(char1),len(char2) dp=[[0]*(m+1) for _ in range(n+1)] #dp[i][j]定义为以i-1为结尾的char1 和以 j-1为结尾的char2 的最短编辑距离 setA = set(wirel@com) set…...

利用ADPF性能提示优化Android应用体验
Android Dynamic Performance Framework(ADPF)是google推广的一套用于优化散热以及CPU性能的动态性能框架。本文主要介绍其中的performance hint的部分。 1、为何引入ADPF 我们都知道,在大多数设备上,Android 会动态调整CPU的频率和核心类型。如果work l…...

论文阅读 - Pre-trained Online Contrastive Learning for Insurance Fraud Detection
Pre-trained Online Contrastive Learning for Insurance Fraud Detection| Proceedings of the AAAI Conference on Artificial Intelligence 目录 摘要 Introduction Methodology Problem Formulation Pre-trained Model for Enhanced Robustness Detecting Network a…...

【最全基础知识2】机器视觉系统硬件组成之工业相机镜头篇--51camera
机器视觉系统中,工业镜头作为必备的器件之一,须和工业相机搭配。工业镜头是机器视觉系统中不可或缺的重要组成部分,其质量和性能直接影响到整个系统的成像质量和检测精度。 目录 一、基本功能和作用 二、分类 1、按成像方式分 2、按焦距分 3、按接口类型分 4、按应用…...

虚拟机WIN7安装PADS VX24 出现脚本故障 IPW213
用虚拟机安装WIN7,再开始安装PADS V24出现脚本故障IPW213 有去.NetFramework3.5 仍然没有效果 Download Microsoft .NET Framework 3.5 from Official Microsoft Download Center 最终用360驱动大师检测了下 发现有些必备组件没有安装,安装之后重启。 …...

23-Oracle 23 ai 区块链表(Blockchain Table)
小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...

UDP(Echoserver)
网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...

新能源汽车智慧充电桩管理方案:新能源充电桩散热问题及消防安全监管方案
随着新能源汽车的快速普及,充电桩作为核心配套设施,其安全性与可靠性备受关注。然而,在高温、高负荷运行环境下,充电桩的散热问题与消防安全隐患日益凸显,成为制约行业发展的关键瓶颈。 如何通过智慧化管理手段优化散…...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战
在现代战争中,电磁频谱已成为继陆、海、空、天之后的 “第五维战场”,雷达作为电磁频谱领域的关键装备,其干扰与抗干扰能力的较量,直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器,凭借数字射…...

多模态大语言模型arxiv论文略读(108)
CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题:CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者:Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...

第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词
Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵,其中每行,每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid,其中有多少个 3 3 的 “幻方” 子矩阵&am…...

使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台
🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...

html-<abbr> 缩写或首字母缩略词
定义与作用 <abbr> 标签用于表示缩写或首字母缩略词,它可以帮助用户更好地理解缩写的含义,尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时,会显示一个提示框。 示例&#x…...
ip子接口配置及删除
配置永久生效的子接口,2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...

10-Oracle 23 ai Vector Search 概述和参数
一、Oracle AI Vector Search 概述 企业和个人都在尝试各种AI,使用客户端或是内部自己搭建集成大模型的终端,加速与大型语言模型(LLM)的结合,同时使用检索增强生成(Retrieval Augmented Generation &#…...