django 经验教训

pip install python-multipart

# filter单列、查询单列,正常values_list给出的结果是个列表,里边里边的每条数据对应一个元组,
当只查询一列时,可以使用flat标签去掉元组,将每条数据的结果以字符串的形式存储在列表中,
从而避免解析元组的麻烦
User.objects.values_list('username', flat=True)

正确
方法:
from datetime import datetime
错误方法:
import datetime

 


 

事务处理

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
from django.db import transaction
 
  事务
    买一本 跟jason学Linux 书
    在数据库层面要做的事儿
    1. 创建一条订单数据
    2. 去产品表 将卖出数+1, 库存数-1
    from django.db.models import F
    开启事务处理
    try:
        with transaction.atomic():
            创建一条订单数据
            models.Book.objects.create(num="110110111", product_id=1, count=1)
            能执行成功
            models.Book.objects.filter(id=1).update(kucun=F("kucun") - 1, maichu=F("maichu") + 1)
    except Exception as e:
        print(e)
        transaction.rollback()  # 回滚
        transaction.commit()  # 提交
         
from django.db import transaction
# 方式1:装饰器
@transaction.atomic
# 方式2:with上下文
with transaction.atomic():
transaction.rollback()
transaction.commit()       

  


# todo 清理过期权限数据

Usertolock.objects.filter(expired_time__lt=datetime.now()).delete()

常用错误提示及原因

1、如下提示实际上是:数据库没连接成功

1
2
     
OSError: [WinError 123] 文件名、目录名或卷标语法不正确。: '<frozen importlib._bootstrap>'

 

2、声明app

     A、在setting.py中apps中声明

     B、app名字目录下 apps.py文件中声明

1
2
3
4
5
from django.apps import AppConfig
  
class ApiConfig(AppConfig):
    default_auto_field = 'django.db.models.BigAutoField'
    name = 'api'

  

3、有时pip install不成功时,可以要使用pip3 install

1
2
pip install django-rest-swagger      不成功
pip3 install django-rest-swagger     成功

  

Token错误代码的捕捉

 

Python set集合做交集、并集、差集运算

集合最常做的操作就是进行交集、并集、差集以及对称差集运算,首先有必要给大家普及一下各个运算的含义。



图 1 集合示意图

 

 


图 1 中,有 2 个集合,分别为 set1={1,2,3} 和 set2={3,4,5},它们既有相同的元素,也有不同的元素。以这两个集合为例,分别做不同运算的结果如表 1 所示。

表 1 Python set集合运算
运算操作Python运算符含义例子
交集 & 取两集合公共的元素 >>> set1 & set2
{3}
并集 | 取两集合全部的元素 >>> set1 | set2
{1,2,3,4,5}
差集 - 取一个集合中另一集合没有的元素 >>> set1 - set2
{1,2}
>>> set2 - set1
{4,5}
对称差集 ^ 取集合 A 和 B 中不属于 A&B 的元素 >>> set1 ^ set2
{1,2,4,5}
posted @   pearlcity  阅读(34)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示