- 博客(171)
- 问答 (1)
- 收藏
- 关注
原创 使用django的DRF业务逻辑应该放在序列化器类还是模型类
模型类:负责数据存储、核心业务逻辑和数据库层面的约束。序列化器:负责数据校验、格式转换和与 API 交互的临时逻辑。业务逻辑归属:模型类:数据生命周期、复杂计算、跨接口复用逻辑。序列化器:请求数据校验、输入输出定制化。视图:权限控制、流程协调。通过合理分层,可以避免代码冗余,提高可维护性和可扩展性。
2025-03-27 13:40:11
793
原创 Django REST Framework中的序列化器类和视图类
在基于函数(FBV)的视图模式中,urls.py文件中指向的就是函数,而在基于类的视图(CBV)中,urls.py文件中指向的是类的as_view()函数,注意这里是加了括号的,就是说是要直接执行这个函数的,而这个函数的直接结果,就是里面的子函数vews()。子view()函数会调用View.dispatch()函数,用于通过反射,指向在客户类中定义的get(),post(),put(),delete()等http方法的函数。另外还初始化了三个基础功能:认证、权限、限流。CBV是基于类的,继承View类。
2025-03-14 14:32:49
859
原创 pyinstaller生成exe文件报错no module named uuid等的解决办法
用python编写的程序,在vscode里运行良好,可是用pyinstaller 生成exe后,就会报错no module named ***,缺少某种软件包,这时候可以在命令行添加语句,强制 pyinstaller 在编译的时候包括该软件包,如果缺少多个,可以像下面那样罗列多个。
2024-05-09 08:12:01
357
原创 apache配置安全证书https踩坑记录
申请好证书后,根据服务器用的什么软件,是apache还是ngnix,下载相应的证书文件,我用的是apache,有三个文件:公钥文件、私钥文件、链文件。下载好这三个文件,上传到服务器的某个文件夹,建议直接上传到apache的conf文件夹,在该文件夹下新建一个cert文件夹,将证书上传到这里。我这里没有做http的配置,因为根据阿里云的文档,以及网上找的文档,Rewrite都没有配置成功,我也不需要http的访问了,因此就直接所有内容都做成https了。注意服务器的443端口要打开,查看一下防火墙的配置。
2023-08-18 17:00:51
932
原创 微信小程序提交数据,python的django框架接收
一、微信小程序部分,这里要注意:content-type的设置与后台接收的格式相关,在这里设置成application/x-www-form-urlencoded。二、python部分,这里用 json.loads方法加载整个 request.body,因为整个body就是一个json数据。
2023-07-04 15:22:07
1292
原创 django3中使用media媒体文件
2、在url.py文件中的最后增加一行,以告诉django,如遇到网址中包含:MEDIA_URL,则去:MEDIA_ROOT去寻找文件。1、首先要设置settings,添加:MEDIA_ROOT、MEDIA_URL,分别表示媒体文件的存储位置和网址引用名称。
2023-06-18 08:24:59
589
原创 从数据库中读取内容并填充django form中的选择字段
mark的值是从数据库Register表中读取的,排除重复值的mark字段内容。一个是:forms.fields.ChoiceField。另一个是:forms.ModelChoiceField。注意,这里两个字段使用的字段模板不同,其中jiaoban是常规的选择字段。
2023-06-01 07:11:19
174
原创 django中distinct的使用
django里用distinct字段不是写在distinct里,而是卸载values里面,而distinct里面留空。for循环里面提示了如何对这个字典列表的引用。
2023-02-02 09:07:00
355
原创 python用变量值作为字典的key
python真是一个太方便的语言,当遇到这个问题时,印象中好像可以用eval计算出变量这值作为变量名。但是python不愧是最好用的语言,可以简单粗暴的用如下方式调用即可。
2023-01-18 10:37:58
1733
原创 通过post方式提交表单的页面在翻页的时候保存搜索条件
当我们点击网页上的页码或者翻页按钮的时候,最简单的情况是点击的链接是一个带页码的连接。页面跳转到这个链接时,当前页面的搜索条件就丢失了。这时候我们只要在点击的时候执行一个提交窗体的操作就可以了。具体是用下面的js程序,截获点击操作,提交当前窗体到点击的url即可。注意,程序里面的选择器的名称要改成自己相应的即可。
2023-01-12 10:24:38
294
原创 Win7下装Apache2.4运行Django3
1、下载并安装Apache2.4.53apache官方不提供二进制版本,只提供源码。我们需要从第三方下载编译的二进制(.exe)版本。打开apache官网的下载页面:如果你的电脑是64位的,在打开的下载页面选择64位的下载:将下载的Apache压缩包解压到D:盘,如Apache24文件夹,在命令提示符下,进入到该文件夹,运行此命令会将httpd作为windows系统的服务启动,每次开机会自动启动httpd2、下载mod_wsgi在这里下载mod_wsgi模块我的机器是64位,Python版本是
2022-06-02 10:12:24
352
转载 selenium By的8种定位方式
https://blog.youkuaiyun.com/weixin_45242451/article/details/92847357
2022-05-24 15:41:15
3710
原创 python3 日期时间和字符串来回转换
1、字符串转日期时间from datetime import date, timedelta, datetimestr_date = '2022-05-08 12:35:46'date_date = datetime.strptime(str_date, '%Y-%m-%d %H:%M:%S')print(date_date)print(type(date_date))2、日期时间转字符串from datetime import date, timedelta, datetime
2022-05-23 16:54:34
1818
原创 python3字符串日期前后n天(日期加减天数计算)
1、字符串转日期方便人识别的字符串格式的日期时间需要先转换成python里的日期时间格式才能做运算,通过以下方式将字符串格式日期转换成python日期时间格式:from datetime import date, timedelta, datetimestr_date = '2022-05-08 12:35:46'date_date = datetime.strptime(str_date, '%Y-%m-%d %H:%M:%S')print(date_date)print(type(d
2022-05-23 14:50:33
1247
原创 django3在模型中创建固定长度的字符串字段char
在django3的模型中,用CharField创建出来的都是数据库中的varchar字段。我们可以自己编写一个Field字段类,继承django3的字段类,用来生成数据库中的char字段类型。from django.db import models# Create your models here.class FixCharField(models.Field): def db_type(self, connection): return 'char(%s)' %(self.max_leng
2022-05-07 08:47:35
1102
原创 Django3中url命名变量的使用(反向解析)
Django3中在urls.py文件中定义路由,当收到客户端请求的时候,django会把路由地址与urls.py中定义的路径相比对,执行匹配的路径所指向的views中的方法。对于这些定义的路径,可以设置一个名称,用来在模板中生成连接地址。urls.pyfrom django.urls import pathfrom . import viewsurlpatterns = [ path('plist/', views.plist), path('ilist/<
2022-05-02 16:46:11
1626
原创 Django3中的urls.py文件层级规划include的使用
machine├── machine│ ├── asgi.py│ ├── __init__.py│ ├── __pycache__│ │ ├── __init__.cpython-36.pyc│ │ ├── settings.cpython-36.pyc│ │ └── urls.cpython-36.pyc│ ├── settings.py│ ├── urls.py│ └── wsgi.py├── mainsite│ ├── adm
2022-05-02 15:31:20
1881
原创 在 Django3中怎样使用索引才能提高效率
1、创建索引Django3中创建索引又两种方式,行内创建,和在Meta类中创建:class Url(models.Model): url = models.CharField(max_length=255, unique=True) domain = models.CharField(max_length=32) checked = models.IntegerField(default=0) cdate = models.
2022-04-29 07:16:56
1164
原创 Rocky linux9.0安装vncserver,通过ssh加密访问
在Rocky linux9.0下安装vncserver,通过ssh加密传输查看可用的包组:dnf group list得到下面的显示:Available Environment Groups: Server with GUI Server Workstation Virtualization Host Custom Operating SystemInstalled Environment Groups: Minimal Insta...
2022-04-07 06:42:25
4870
原创 mysql(mariadb)远程访问
mysql(mariadb)通过远程访问,需要在数据库中配置用来远程访问的账号、密码、IP地址通过命令:grant all privileges on *.* to 'remoteuser'@'123.123.123.%' identified by 'password' with grant option;flush privileges;其中:remoteuser是用来远程访问的用户名,你可以自己定义,也建议自己定义而不要用默认的root。123.123.123.%是你客户端的IP地址段,
2022-03-28 11:59:26
2048
原创 selenium获取input的value值
用selenium获取input中的value值,需要用到一个函数:from selenium import webdriverbrowser = webdriver.Chrome("d:/BrowserDriver/chromedriver.exe")browser.get("http://10.242.253.152/#/toDoManage/personalToDo")# 找到需要的元素element = browser.find_element_by_xpath('//*[@id="xb
2022-03-27 10:44:44
7664
原创 django3配合mysql的limit做分页以提高效率而不用自带的paginator
这是view中总数据库中取得第page也的数据的代码django中实现mysql中的limit功能用的是python的切片功能,也就是[n:m]所以根据给定的一页显示的记录数,和页码,就能计算出起始位置和结束位置,就可以利用切片功能实现对mysql数据库的分页。不过这种实现方式对于偏移量巨大的数据库来说效率比较低,对于超大数据库,建议用对id的子查询来实现。 page_size = 15 count = Register.objects.all().count() page_
2022-03-05 14:59:44
1682
1
转载 django多表数据的添加查询(一对一、一对多、多对多关系)ORM
一、创建表我们假设有这样的数据表,表中已经用OneToOneField、ForeignKey、ManyToManyField表达了一对一、一对多、多对多关系class Book(models.Model): title = models.CharField(max_length=32) price = models.DecimalField(max_digits=5, decimal_places=2) pub_date = models.DateField() publ
2022-03-03 16:34:44
2862
原创 一个简单的标准的django后台框架
框架内容页面模板{% extends 'base.html' %}{% load static %}{% block css %}<link rel="stylesheet" href="{% static "mainsite/css/list.css" %}" />{% endblock %}{% block content %}{% if message %} <div class="alert alert-warning">{{ message }}.
2022-03-01 08:42:01
779
原创 win7下vscode跑DevC++环境搭建
1、搜索DevC++,找到DevC的官网,下载安装程序并安装https://bloodshed-dev-c.en.softonic.com/2、搜索vscode,到官网下载vscode安装程序,并安装https://code.visualstudio.com/3、打开vscode,安装基本扩展点击vscode左侧的Extensions图标,依次搜索:Chinese安装:Chinese (Simplified) (简体中文) Language Pack for Visual Studio C
2022-01-24 11:00:24
3490
原创 django3文件上传一般文件和图片文件
1、models.py 1 from django.db import models 2 3 # Create your models here. 4 5 class Files(models.Model): #设置上传文件位置,这里使用自动生成的年月文件夹,如:2021/04 #注意这个2020/04文件夹是在settings.py文件的MEDIA_ROOT文件夹下面的 6 filename = models.FileField(upload_to=
2021-04-17 10:25:12
535
原创 Django2的“媒体文件”media的设置
django 所有文件都是通过wsgi.py这个文件作为入口来解析的,主要是解析django MTV框架下的.py程序文件。对于上传的图片、文件,是不需要django解析的,因此要做一些设置,告诉django,什么样网址的是这样的“媒体”文件,这些文件保存于什么地方。1、设置settings.py文件#这个语句就是告诉django,什么样网址是媒体文件#这里用的是media,你也可以替换成其他,比如我习惯用uploadMEDIA_URL = ‘/media/’#这个语句告诉django,这些媒体文
2021-04-15 16:26:10
362
GetResponseStream只能使用一次的问题。
2013-11-14
TA创建的收藏夹 TA关注的收藏夹
TA关注的人