![](https://img-blog.csdnimg.cn/20190918140053667.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
django
django学习
我就叫贝塔
每天进步一点点
展开
-
django查询
https://www.cnblogs.com/hany-postq473111315/p/12859187.html转载 2022-01-26 11:06:08 · 83 阅读 · 0 评论 -
django打包依赖文件(具体的,并非全部下载包)
# 下载pip install pipreqs# 导出pipreqs --encoding=utf8原创 2022-01-18 17:21:13 · 698 阅读 · 0 评论 -
Django序列化器一对多及多对一
三张表:病例,病例富文本, 病例图片病例一对多到病例富文本, 病例富文本一对多到病例图片class Case(models.Model): """ 病例 """ title = models.CharField(max_length=250) description = models.TextField() image_examine = models.TextField() # 影像学检查 # type 字段更改成外键,动态化分类 ca原创 2021-12-09 16:28:56 · 843 阅读 · 0 评论 -
django的GenericAPIView类分页添加额外的参数
page = self.paginate_queryset(queryset) if page is not None: serializer = OrderListSerializer(page, many=True) data = serializer.data data.append({'nihao':'333333333333333333333333333333333333333'}) ...原创 2021-11-18 15:07:32 · 405 阅读 · 0 评论 -
同时使用DefaultRouter()和path(),导致path()找不到路由
from django.conf.urls import url, includefrom django.urls import pathfrom order import views, apifrom rest_framework.routers import DefaultRouterrouter = DefaultRouter()router.register(r'', api.OrderViewSet)urlpatterns = [ url(r'^', include(ro原创 2021-11-18 11:48:36 · 509 阅读 · 0 评论 -
开发或生产环境celery代码不起作用
如果修改了task.py文件的代码,但是运行的时候不起作用, 很简单,重新启动celery work ,这样celery才能识别到task里面的代码被更改了还有一种情况: task.py里面,一个异步的方法,调用了某个工具函数, 这时如果修改此工具函数, 也必须重新启动celery work...原创 2021-11-09 10:46:07 · 420 阅读 · 0 评论 -
django开启事务,事务包含的更深范围(事务里面调用方法)
关于django开启事务,事务包含的更深范围在接口中,当开启with transaction.atomic(): 事务时, 在事务里面, 即使你是调用其他的函数, 函数里面所进行的数据库增删改查, 也一并在事务里面。举例:api…py (自定义的文件)def charge(name): User.objects.create(name=name)view.pyfrom api import chargedef charge(APIView): with transaction.atomi原创 2021-11-08 15:08:55 · 836 阅读 · 0 评论 -
Django多租户项目连接不同数据库
参考资料:https://blog.csdn.net/bocai_xiaodaidai/article/details/119276263tips:数据库migrate迁移命令需要重写,因为默认的migrate拿到不tenant_id以下是重写之后的migrate命令,使用时指定要迁移的数据库即可。如:python manage.py makemigrationspython manage.py migrate --database tenant_1 (仅迁移tenant_1数据库)p转载 2021-09-14 09:24:04 · 213 阅读 · 0 评论 -
在请求头里加入键值对专门用来识别微信小程序
在request.js文件里,加入如下 wx.request({ url: object.url, header: object.header || { "wechat-mini":'mini' // 判断时小程序还是H5 },在服务器端,只需要获取到请求头, 判断请求是否来自小程序# 如果头部为wechat-mini, 则中划线必须改为下划线(django框架如此), 并且加上http, 全部大写wechat_mini =原创 2021-09-13 10:19:43 · 333 阅读 · 0 评论 -
通过userAgent来识别请求来自于微信H5还是微信小程序
如何识别http请求是否来自微信客户端在http数据包的header结构中解析“User-Agent”即可,判断是否包含关键字“micromessenger”(这里请注意不要拦截其他微信http请求,所以关键词请匹配好),示例代码如下:user_agent = request.META.get('HTTP_USER_AGENT', "") logger.info("request user agent: {}".format(user_agent))原创 2021-09-08 11:06:56 · 4334 阅读 · 0 评论 -
django.db.utils.OperationalError: (1050, “Table ‘xxx‘ already exists“)
解决办法:python manage.py migrate myapp --fake原创 2021-09-03 12:22:18 · 209 阅读 · 0 评论 -
django捕获DoesNotExist
from django.core.exceptions import ObjectDoesNotExisttry: user = User.objects.get(id=12873)except ObjectDoesNotExist: print "user"原创 2021-07-20 11:13:50 · 1006 阅读 · 0 评论 -
dajngo项目后台管理之编辑(修改数据库)
对于一个数据库的修改, 当然也可以修改关联的其他数据库, 那就得再加点代码此处的代码只是对一个数据库的修改有效class update_case_optins(APIView): def post(self, request): case_ques = Case_Question.objects.get(id=pk) post_data = request.data exclude = [k for k in post_data.keys() if原创 2021-07-15 18:54:12 · 264 阅读 · 0 评论 -
from Crypto.Util.py3compat import byte_string ImportError: cannot import name ‘byte_string‘
按照顺序依次运行pip3 uninstall pycryptopip3 uninstall pycryptodomepip3 install pycryptodome参考自:https://www.cnblogs.com/fawaikuangtu123/p/9761943.html原创 2021-06-21 15:15:44 · 355 阅读 · 0 评论 -
django ORM的default字段值并不会同步到mysql,手动更改默认值
django ORM的default字段值并不会同步到mysql, 此时可以使用sql工具, 将default字段的值填上去如图:这样的话, 当使用sql文件导入数据的时候,字段就会有默认值了原创 2021-05-22 15:35:26 · 579 阅读 · 0 评论 -
Django之关键字查询,Q的用法,双下划线的用法(keywords)
当查询的关键字可以是title和name时, 使用到了Q查询keywords = request.query_params.get("keywords", None)# 查询课程filter_dict = {key: val for key, val in request.query_params.items() if val and key in dir(VideoInfo)}args = []if keywords: # 关键字查询,title__icontains(title为Vi原创 2021-04-06 09:52:56 · 322 阅读 · 0 评论 -
django后台管理之组合查询(轮子造好,直接使用)
列表使用*字典使用**原创 2021-04-02 12:23:00 · 250 阅读 · 3 评论 -
django celery查看队列任务个数 清空队列,celery闪崩积压太多任务导致服务器宕机
redis-cli -p 16379 -n 3 llen celery #查看消息队列# -p 16379 端口# -n 3 指定数据库python3 manage.py celery purge # 清空队列原创 2021-03-30 15:19:24 · 4534 阅读 · 5 评论 -
django缓存cache的基本使用方法(各种操作)
开启Django Cache配置后,就可以使用缓存服务了,基本用法如下cache.set(key, value, timeout=DEFAULT_TIMEOUT, version=None)其中是一个字符串,是一个认可picklable形式的python对象,和参数都是可选的,默认为配置中相应后端的参数,为对应的版本,参考上边关于的解释cache.get(key, default=None, version=None)新的参数的意思是,当请求的key不存在时,则返回设置的这个值,而不是默认不存在原创 2021-03-11 11:37:04 · 8026 阅读 · 0 评论 -
多个vue项目和一个django项目部署在nginx
server { listen 80; # 网站访问的监听端口 server_name www.fullmedbank.cn; # 如果服务器已经被域名解析,必须填域名 charset utf-8; # 指定项目路径uwsgi location /api { rewrite ^/api/(.*)$ /$1 break; include uwsgi_params; ...原创 2021-01-29 10:58:41 · 222 阅读 · 0 评论 -
viewsets.ModelViewSet代码示例
# 密码课程包分类class CategoryUserPassViewSet(viewsets.ModelViewSet): # """ # 这一viewset提供了`list`, `create`, `retrieve`, `update` 和 `destroy` # """ queryset = Cls_User_Passwd.objects.all() serializer_class = CategoryUserPassSerializer filt原创 2021-01-21 10:40:46 · 603 阅读 · 3 评论 -
(corsheaders.E014) Origin ‘http://127.0.0.1:8090/‘ in CORS_ORIGIN_WHITELIST should not have path
settings文件中跨域白名单的问题:错误实例:CORS_ORIGIN_WHITELIST = ( 'http://localhost:8090/' # 前端本地vue项目接口)改为:CORS_ORIGIN_WHITELIST = ( 'http://localhost:8090' # 前端本地vue项目接口)把后面的斜杠去掉,问题解决...原创 2021-01-20 18:12:02 · 1321 阅读 · 0 评论 -
django+vue+uwsgi+nginx部署在阿里云生产环境(全套配置代码)
前言献给和我一样懵懂中不断汲取知识,进步的人们。霓虹闪烁,但人们真正需要的,只是一个可以照亮前路的烛光理论铺垫1,wsgi:一种实现python解析的通用接口标准/协议,是一种通用的接口标准或者接口协议,实现了python web程序与服务器之间交互的通用性。利用它,web.py或bottle或者django等等的python web开发框架,就可以轻松地部署在不同的web server上了;uwsgi:同WSGI一样是一种通信协议uwsgi协议是一个uWSGI服务器自有的协议,它用于定原创 2021-01-14 10:25:11 · 561 阅读 · 0 评论 -
python3.8+redis6.0.6+celery5.0.5+django3.1.4
注意以前版本的Celery需要一个单独的库才能与Django一起使用,但是从3.1开始,情况不再如此。现成的支持Django,因此本文档仅包含集成Celery和Django的基本方法。您将使用与非Django用户相同的API,因此建议您先阅读“使用Celery的第一步”教程,然后再返回本教程。当您有可用的示例时,可以继续阅读“下一步”指南。现在使用django和celery直接使用celery包就可以,几乎不会出现兼容问题网上一大堆TM全是粘贴复制,千篇一律,误人子弟官网教程:https://doc原创 2021-01-09 18:01:23 · 1291 阅读 · 1 评论 -
Django之ORM动态数据入库(无需考虑字段的增加与删除)
django在存储数据的时候,使用的基本上都是ORM,通过下面的代码,即使你删除或增加表的某些字段,也不影响到已经完后的代码post_data = request.POSTsave_data = {key: val for key, val in post_data.items() if val and key in dir(UserInfo)}user= UserInfo(**save_data)user.save()当然,在此之前,你必须将post过来的数据存储到post_data这个变量里原创 2020-12-18 16:14:58 · 449 阅读 · 2 评论 -
微信报错:40001: invalid credential, access_token is invalid or not latest rid: xxx(附带存储access_token代码)
我使用的是redis作为存储服务器,来存储access_token,代码亲测没有任何问题在做微信公众号模板推送的时候用到了access_token,但是有时推送成功,有时失败,报错显示为:40001: invalid credential, access_token is invalid or not latest rid: 5fdb2087-1f36ab8e-5c34337a因为AppSecret之前一直使用, 所以不会错误,所以只能是access_token失效。百思不得其解,为啥有时候能成功原创 2020-12-17 18:00:47 · 22208 阅读 · 0 评论 -
Django 之pip3 install pyjwt
转载自: https://www.cnblogs.com/ls-2018/p/11858551.html原创 2020-12-16 10:25:40 · 612 阅读 · 0 评论 -
Django自带的用户认证auth模块
转载自: https://www.cnblogs.com/Zzbj/p/9984783.html原创 2020-12-16 10:19:17 · 103 阅读 · 0 评论 -
Djando ORM之获取两个时间段内的所有记录
video_list = VideoInfo.objects.filter(start_time__range=(dt_now, dt_end))注意: dt_now,dt_end 这两个的值必须为字符串类型的时间# 比如def datetime2string(d_time=None, _format="%Y-%m-%d %H:%M:%S"): if not d_time: d_time = datetime.now() return d_time.strftime(原创 2020-11-30 17:57:00 · 237 阅读 · 0 评论 -
Django中datetime类型返回用秒数来表示时间的浮点数
end_time 为datetime类型的字段import timeobj = user.objects.get(pk=1)second = time.mktime(obj.end_time.timetuple())原创 2020-10-23 16:07:20 · 458 阅读 · 0 评论 -
python有序字典之OrderedDict()(用来解决django模糊查询中不按照所给数据顺序查询解决办法)
from collections import OrderedDict在python中,dict这个数据结构由于hash的特性,是无序的,这在有时候会给我们带来一些麻烦,幸运的是,collections模块为我们提供了OrderdDict,当你要获取一个有序的字典对象时,用它。举例:from collections import Counter, OrderedDictb = OrderedDict()for i in range(5): user = b.setdefault(i,原创 2020-10-20 17:57:26 · 982 阅读 · 0 评论 -
viewsets.ModelViewSet作为父类时报错:ValueError: invalid literal for int() with base 10: ‘xxx‘
我在使用以viewsets.ModelViewSet 作为父类当接口的时候,当前端发起请求的时候,得到这个报错字面意思是int()数据类型转换的错误,但是我看了接口,数据转换没有错,而且根本没有走进去接口,就报错了如下接口: @detail_route(methods=["get"]) def check_password(self, request): ''' 检查 密码 ''' message = {}原创 2020-10-14 14:30:36 · 199 阅读 · 1 评论 -
Django序列化器之serializers.SerializerMethodField()
源代码:class SerializerMethodField(Field): """ A read-only field that get its representation from calling a method on the parent serializer class. The method called will be of the form "get_{field_name}", and should take a single argument, wh原创 2020-10-12 16:30:12 · 3175 阅读 · 0 评论 -
django 前端调用后端接口下载excel文件的几种方式
今天有一个导出相应数据为excel表的需求。后端的接口返回一个数据流,一开始我用axios(ajax类库)调用接口,返回成功状态200,但是!但是浏览器没有自动下载excel表,当时觉得可能是ajax的安全性问题导致无法下载。下面列觉两种我测试成功的方式:1.window.location.href = ‘接口地址’含义:当前页面打开URL页面.和在浏览器输入接口地址一样,可以下载excel文件.但是缺点是无法执行POST请求2.利用隐藏表单解决(我这里假设加入了JQuery库):var expo原创 2020-09-23 17:58:18 · 1289 阅读 · 0 评论 -
django后台搜索报错:Related Field got invalid lookup: icontains
搜索出错,说明是因为外键没有指明比如我的外键是:categroy和user那当我想要检索他们时,就要把他们用 __icontains 来说明他们是外键user表我用到了user表的name和tel,也用双下滑线进行链式查询 search_fields = ["category__icontains", "user__name__icontains", "user__tel__icontains"]完美解决...原创 2020-09-18 09:19:08 · 1368 阅读 · 0 评论 -
dajngo 报错(1242, ‘Subquery returns more than 1 row‘)
分析原因查询SQL语句时,其中有个字段是从另一张表里获取的值,作为另一个表的值查询出num是多条数据,而外层查询结果是要求num为一条数据说到底其实就是说,只能有一条数据或限制条数的数据,自己改一下就好解决方案限制获取值的条数 或删除多余数据后在执行或者是在orm查询语句的后面,加上first(),视情况而定...原创 2020-09-17 18:39:27 · 244 阅读 · 0 评论 -
django捕获特定错误给出特定的返回提示
在Django中用try…except…来捕获错误并给出输出但是有些特定的错误如何捕获呢,比如下面这个这时我们就需要先把这个错误导入进来from django.db.utils import IntegrityError然后征程捕获及响应输出即可: try: # 控制数据库事务交易 with transaction.atomic(): cup_list = [] logger.原创 2020-09-17 10:28:08 · 1093 阅读 · 0 评论 -
Django迁移报错
python manage.py migrate myapp --fake百度上述代码,查看解决办法原创 2020-09-08 10:51:41 · 195 阅读 · 1 评论 -
celery中shared_task和task有啥不同呢?
from celery import shared_task@shared_taskdef func(): passshared_task 调用时,就像普通的函数一样调用就行在什么情况下会用到哪种呢?原创 2020-09-04 14:45:07 · 5967 阅读 · 2 评论 -
django.db.utils.InternalError: (1366, “Incorrect string value“...)解决方案:微信特殊昵称入库
当微信昵称有特殊表情的时候入库就会发生此错误 .看了网上的很多解决办法,都是改表的配置啥的,我没有那样做我使用了一个正则表达式,只获取到昵称的中文,字母和数字,其他一律不取,完美解决代码:import renicheng = re.findall('[\u4e00-\u9fa5a-zA-Z0-9]+',name,re.S) #只要字符串中的中文,字母,数字name = "".join(nicheng)...原创 2020-08-31 10:02:52 · 199 阅读 · 0 评论