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

基于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中修改配置&#xff1a; 其格式可访问官网&#xff1a;Settings | Django documentation | Django 1.1 配置数据库 文件地址&#xff1a;trip_server/settings.py 配置前需要创建&#xff08;NaviCat&#xff09;个人数据库 "…...

乐尚代驾-----Day10(订单三)

hi UU 们&#xff01;&#xff01;&#xff01;我又来跟辛辣&#xff01;感谢你们的观看&#xff0c;话不多说&#xff01;~ 司机到达代驾终点&#xff0c;代驾结束了。结束代驾之后&#xff0c; – 获取额外费用&#xff08;高速费、停车费等&#xff09; – 计算订单实际里程…...

105. 聚光源SpotLight

入门部分给大家介绍过平行光DirectionalLight、点光源PointLight、环境光AmbientLight,下面给大家介绍一个新的光源对象&#xff0c;也就是聚光源SpotLight。 创建聚光源SpotLight 聚光源可以认为是一个沿着特定方会逐渐发散的光源&#xff0c;照射范围在三维空间中构成一个圆…...

系统接口权限拦截器,获取用户信息存储

UserInfo 类 这是一个表示用户信息的 Java 类&#xff0c;使用了 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字段主要用于选取颜色&#xff0c;如下所示&#xff1a; <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>菜鸟教程(runoob.com)</title> </head> <body&…...

问:SQL中的通用函数及用法?

SQL函数是在SQL语句中使用的预定义的计算工具&#xff0c;可以对一列数据进行操作并返回一个单一的结果。这些函数大致可以分为两类&#xff1a;Aggregate函数和Scalar函数。Aggregate函数对一组值执行计算&#xff0c;并返回单个值&#xff0c;如求和、平均值、最大值和最小值…...

.NET Core WebApi第6讲:WebApi的前端怎么派人去拿数据?(区别MVC)

一、前端界面小基础 head&#xff1a;引入CSS, 引入JS是写在head里面。 body&#xff1a;眼睛肉眼能看到的用户展示的界面是写在body里面。 二、前端怎么派人去拿数据&#xff1f; 1、MVC&#xff1a;前后端不分离&#xff0c;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 是一个开源的分布式协调服务&#xff0c;专为确保分布式系统中的高可用性和一致性而设计。在现代分布式应用程序中&#xff0c;协调、同步和管理是实现高效和可靠服务的关键部分&#xff0c;而 ZooKeeper 通过提供这些基础功能而成为许多分布式系统不可或缺的…...

【Vue3】第四篇

Vue3学习第四篇 01. 插槽Slots02. 插槽Slots&#xff08;续集&#xff09;03. 插槽Slots&#xff08;再续集&#xff09;04. 组件生命周期05. 生命周期应用06. 动态组件07. 组件保持存活08. 异步组件09. 依赖注入10. Vue应用 01. 插槽Slots 模板内容&#xff1a;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框架的类加…...

笔试题 求空格分割的英文句子中,最大单词长度。

求空格分割的英文句子中&#xff0c;最大单词长度。例如:“this is a word”&#xff0c;最大单词长度为4。要求:不能用 split 函数对字符串进行切分&#xff0c;算法复杂度为o(n) public class MaxWordLength { public static int maxWordLength(String sentence) { if (se…...

【笔记】大模型长度外推技术 NTK-Aware Scaled RoPE

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

前端 eslint 配置,以及在git提交之前自动format

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

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 我们都知道&#xff0c;在大多数设备上&#xff0c;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&#xff0c;再开始安装PADS V24出现脚本故障IPW213 有去.NetFramework3.5 仍然没有效果 Download Microsoft .NET Framework 3.5 from Official Microsoft Download Center 最终用360驱动大师检测了下 发现有些必备组件没有安装&#xff0c;安装之后重启。 …...

蚂蚁百灵推 Ling-2.6-flash 模型:推理快、成本低,全场景性能优但仍待优化

蚂蚁百灵推出 Ling-2.6-flash 模型蚂蚁百灵宣布正式推出 Ling-2.6-flash&#xff0c;一款总参数量 104B、激活参数 7.4B 的 Instruct 模型。API 定价与试用Ling-2.6-flash 的 API 定价方面&#xff0c;输入每百万 tokens 定价 0.1 美元&#xff0c;输出 0.3 美元。目前其 API 已…...

避坑指南:北航MEM复试被刷后,我总结的3个报名细节和2个备考决策陷阱

北航MEM复试避坑手册&#xff1a;从报名到考场的5个致命细节 站在北航MEM复试被刷的十字路口回望&#xff0c;那些藏在报名表角落的选项、备考时犹豫的三秒钟决策、考场上被忽略的涂卡时机&#xff0c;每一个细节都像蝴蝶效应般最终影响了结果。这不是又一篇成功经验分享&#…...

多摩川编码器通信避坑指南:STM32 RS485接线、供电不稳、通信失败的排查与修复

多摩川编码器与STM32的RS485通信实战&#xff1a;从硬件设计到故障排查的完整指南 当你在深夜的实验室里盯着示波器上杂乱的波形&#xff0c;反复检查代码却依然无法与多摩川编码器建立通信时&#xff0c;那种挫败感每个嵌入式工程师都深有体会。RS485通信看似简单&#xff0c;…...

如何彻底告别AutoCAD字体缺失烦恼:FontCenter字体管理插件完整指南

如何彻底告别AutoCAD字体缺失烦恼&#xff1a;FontCenter字体管理插件完整指南 【免费下载链接】FontCenter AutoCAD自动管理字体插件 项目地址: https://gitcode.com/gh_mirrors/fo/FontCenter 你是否经常在打开AutoCAD图纸时看到满屏的问号&#xff1f;是否因为缺少特…...

Phi-4-mini-reasoning参数详解:不同temperature下数学答案分布对比

Phi-4-mini-reasoning参数详解&#xff1a;不同temperature下数学答案分布对比 1. 模型概述 Phi-4-mini-reasoning是微软推出的3.8B参数轻量级开源模型&#xff0c;专为数学推理、逻辑推导和多步解题等强逻辑任务设计。这款模型主打"小参数、强推理、长上下文、低延迟&q…...

CN3795 具有太阳能电池最大功率点跟踪功能的4A 多节电池充电管理集成电路

概述: CN3795 是一款可使用太阳能板供电的 PWM 降压模式多节电池充电管理集成电路&#xff0c;独立对多节 电池充电进行管理&#xff0c;具有封装外形小&#xff0c;外围元器件少和使用简单等优点。 CN3795 具有涓流&#xff0c;恒流和恒压充电模式&#xff0c;非常适合锂电池&…...

中小制造企业数字化转型避坑指南:PLM、ERP、MES、CRM该怎么选和分步上?

中小制造企业数字化转型避坑指南&#xff1a;PLM、ERP、MES、CRM的分阶段实施策略 在中小制造企业的数字化转型浪潮中&#xff0c;PLM、ERP、MES、CRM四大系统的选择与实施顺序往往成为决定成败的关键。许多企业管理者面对这些专业术语时&#xff0c;要么陷入"全盘照搬大企…...

Boss-Key智能窗口管理解决方案:一键隐藏保护你的隐私与效率

Boss-Key智能窗口管理解决方案&#xff1a;一键隐藏保护你的隐私与效率 【免费下载链接】Boss-Key 老板来了&#xff1f;快用Boss-Key老板键一键隐藏静音当前窗口&#xff01;上班摸鱼必备神器 项目地址: https://gitcode.com/gh_mirrors/bo/Boss-Key 你是否曾因突然的检…...

Android12 展锐sl8541平台USB转串口驱动集成与SELinux权限实战解析

1. 硬件电路与引脚配置 在展锐sl8541平台上集成USB转串口功能&#xff0c;第一步需要确保硬件电路设计正确。Type-C接口的ID引脚连接到了CPU的KEYIN2/EXTINT4/GPIO126引脚&#xff0c;这个引脚的状态决定了USB的工作模式&#xff08;主机模式或设备模式&#xff09;。实际项目中…...

Windows任务栏美化革命:用TranslucentTB解锁桌面个性化新维度

Windows任务栏美化革命&#xff1a;用TranslucentTB解锁桌面个性化新维度 【免费下载链接】TranslucentTB A lightweight utility that makes the Windows taskbar translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/TranslucentTB 厌倦了Windows任…...