基于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驱动大师检测了下 发现有些必备组件没有安装,安装之后重启。 …...
3步解锁苹果电脑新玩法:用PlayCover畅玩iOS游戏和应用
3步解锁苹果电脑新玩法:用PlayCover畅玩iOS游戏和应用 【免费下载链接】PlayCover Community fork of PlayCover 项目地址: https://gitcode.com/gh_mirrors/pl/PlayCover 还在羡慕朋友在iPad上玩热门手游,而你的Mac只能干看着?想知道…...
别再只调CLIP了!用Qwen2.5-VL的‘鹰之眼’搞定高清文档解析与长视频理解
Qwen2.5-VL:解锁工业级多模态理解的"鹰之眼"技术 在数字化转型浪潮中,企业每天需要处理海量的非结构化数据——从财务报表扫描件到生产线监控视频,从医疗影像到用户生成内容。传统AI模型在处理这些数据时,往往面临两大痛…...
LuckyLilliaBot:NTQQ的终极OneBot协议插件完整指南
LuckyLilliaBot:NTQQ的终极OneBot协议插件完整指南 【免费下载链接】LuckyLilliaBot NTQQ的OneBot API插件 项目地址: https://gitcode.com/gh_mirrors/li/LuckyLilliaBot LuckyLilliaBot是一个基于TypeScript开发的NTQQ插件,为QQ客户端提供完整的…...
W-TRS-5.5D7红外测温:电炖锅智能测温的革新力量
在追求健康饮食与智能烹饪的时代,电炖锅的温控技术革新至关重要。领麦微W-TRS-5.5D7红外测温传感器的出现,为电炖锅带来非接触检测锅温与食物温度的新突破,结合智能菜谱功能,开启电炖锅智能烹饪新纪元。非接触检测锅温:…...
如何选择最适合的开源付费墙绕过工具?5款热门方案深度测评
如何选择最适合的开源付费墙绕过工具?5款热门方案深度测评 【免费下载链接】bypass-paywalls-chrome-clean 项目地址: https://gitcode.com/GitHub_Trending/by/bypass-paywalls-chrome-clean 在数字内容付费阅读日益普及的今天,开源工具为用户提…...
从Solidworks到Simulink:避开ADAMS“雷区”的机电联合仿真实践
1. 为什么机电联合仿真总在ADAMS上栽跟头? 第一次用ADAMS做机电联合仿真时,我对着满屏的线框图发呆了半小时——这玩意儿怎么连个像样的实体显示都要手动切换?更崩溃的是,好不容易导入的Solidworks装配体,所有配合关系…...
超实用!学生党第一把吉他怎么选?9款“低弦距神器”深度测评与避坑指南!
大家好,我是深耕音乐教育与乐器选购多年的好物推荐官,常年和学生党打交道,最常被问到的问题就是:“预算有限,怎么选到好弹又耐用的吉他?” 其实对学生而言,第一把吉他无需追求高端奢华ÿ…...
Phi-4-Reasoning-Vision简单调用:Python API封装与REST接口调用示例
Phi-4-Reasoning-Vision简单调用:Python API封装与REST接口调用示例 1. 项目概述 Phi-4-Reasoning-Vision是基于微软Phi-4-reasoning-vision-15B多模态大模型开发的高性能推理工具,专为双卡4090环境优化。该工具严格遵循官方SYSTEM PROMPT规范…...
当分包时,主包里有未被引用的文件,小程序预览【代码质量】显示包体积过大,不影响发布
1.项目加入分包后预览时显示主包体积超出?排查分包没问题,外部库方法也不会占很多空间2.代码依赖分析【显示 - 主包体积正常】主包实际体积(768KB)明明远小于 2MB 上限,但工具却提示「主包尺寸应小于 1.5M」且未通过。…...
给视觉新手的保姆级教程:用Python+OpenCV玩转四步相移结构光(附代码)
零基础实战:用PythonOpenCV实现四步相移结构光三维重建 在计算机视觉领域,结构光三维重建技术因其高精度和非接触特性,被广泛应用于工业检测、逆向工程和医疗成像。对于刚接触这一领域的新手来说,最困扰的往往不是理解原理&#x…...
