django
ailinyingai
DevOps 搬砖人 干饭人
展开
-
Django-prometheus中间件
导出3个metrics,Django_model_inserts_total{model=‘userinfo’},django_model_updates_total{model=‘user info’},django_model_deletes_total{model=‘userinfo’}请注意,导出的指标是在当前流程中完成的创建,修改和删除的计数器。它们不是模型中对象数量的度量。...翻译 2020-11-30 22:26:03 · 365 阅读 · 0 评论 -
django优化
Django的queryset是惰性的,使用filter语句进行查询,实际上并没有运行任何的要真正从数据库获得数据2 只要你查询的时候才真正的操作数据库。会导致执行查询的操作有:对QuerySet进行遍历queryset,切片,序列化,对 QuerySet 应用 list()、len()方法,还有if语句3 当第一次进入循环并且对QuerySet进行遍历时,Django从数据库中获取数据,在它...翻译 2020-04-29 14:04:09 · 306 阅读 · 0 评论 -
django 优化
数据库连接池http://mt.dbanotes.net/arch/instagram.htmlDjango 默认DB配置提供了选项CONN_MAX_AGE用于配置在同一个thread/greenlet里面DB connection的最大存活时间,便于连接的复用,在实践中发现如果使用gunicorn+gevent的方式来启动WSGI服务,由于gunicorn会创建一个很大的gevent poo...原创 2020-01-15 17:53:46 · 313 阅读 · 0 评论 -
django 设计模式
在软件系统中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合”。但在某些场合,比如要对行为进行“记录、撤销/重做、事务”等处理,这种无法抵御变化的紧耦合是不合适的。在这种情况下,如何将“行为请求者”与“行为实现者”解耦?将一组行为抽象为对象,实现二者之间的松耦合,这就是命令模式(Command Pattern)。命令模式有以下特点:命令模式的本质是对命令进行封装,将发出命令的责任和执行命令...原创 2020-01-15 09:54:25 · 228 阅读 · 0 评论 -
认证
from rest_framework_jwt.views import obtain_jwt_token, refresh_jwt_token, verify_jwt_tokenpath(r’v1/auth/api-auth’, include(‘rest_framework.urls’, namespace=‘rest_framework’)),path(r’v1/auth/api-tok...原创 2020-01-06 10:05:10 · 101 阅读 · 0 评论 -
认证
from django.contrib import adminfrom django.urls import pathfrom rest_framework_simplejwt.views import (TokenObtainPairView,TokenRefreshView)from DjangoRestAuth.views import ModsViewurlpatterns ...原创 2020-01-03 09:22:26 · 127 阅读 · 0 评论 -
django five
Django好的开源项目很多,在Github上搜索一下就可以找到一堆。如果不考虑单独的django app,只考虑可以直接拿来用的网站系统的话,有以下这些值得参考:Django CMS (https://github.com/divio/django-cms)Satchmo (http://www.satchmoproject.com/)Askbot (http://askbot.com/...原创 2019-12-31 20:26:00 · 95 阅读 · 0 评论 -
django 不使用 orm
def dictfetchall(cursor):“Returns all rows from a cursor as a dict”desc = cursor.descriptionreturn [dict(zip([col[0] for col in desc], row))for row in cursor.fetchall()]cursor.execute(“SELEC...原创 2019-12-27 17:21:56 · 1765 阅读 · 0 评论 -
django 邮箱设置问题
EMAIL_HOST = ‘smtp.qq.com’EMAIL_PORT = 25EMAIL_HOST_USER = ‘xxx@qq.com’ # 你的 QQ 账号EMAIL_HOST_PASSWORD = ‘刚刚复制的授权码(不是你的 QQ 密码!!!)’EMAIL_USE_TLS = True # 这里必须是 True,否则发送不成功EMAIL_FROM = ‘xxx@qq.com’...原创 2019-12-09 14:33:44 · 206 阅读 · 0 评论 -
django两种处理model数据的方式
django提供了很方便的数据库操作层,但是有时候你发现它还是不够用。这时候你想直接使用sql操作数据库,django让你很方便使用它,并且提供了2中方式:a. 基于已创建的modelhttps://docs.djangoproject.com/en/dev/topics/db/sql/#performing-raw-queries下面是示例代码:Blog.objects.raw(“...翻译 2019-12-06 15:46:28 · 462 阅读 · 0 评论 -
orm 80%
由于官方文档一般讲究『平均发力,面面俱到』,虽然内容是详细,但是对于初学者往往是『不知轻重,找不着北』。本文试图总结一些 Django ORM 中比较常用的东西,力求覆盖全面,实现『花20%的时间,搞定80%的内容』的目的。【ORM class 的定义】这个非常简单,基本无脑使用。注意,这里我假设:使用者基本不使用『物理层外键』,外键逻辑再应用层控制(这个话题见仁见智,各有各的选择)。【创建...原创 2019-11-15 15:20:06 · 119 阅读 · 0 评论 -
打包发布 django
FROM python:3.5COPY ./requirements.txt /srcWORKDIR /srcRUN pip install -r requirements.txtCOPY . /srcEXPOSECMD uwsgi --http :--wsgi-file<path/to/wsgi.py># settings.py # ... LOGGING = ...原创 2019-11-14 13:50:17 · 2295 阅读 · 0 评论 -
celery&&redis
celery的内存泄漏? 总结: celery执行完任务不释放内存与原worker一直没有被销毁有关,因此CELERYD_MAX_TASKS_PER_CHILD可以适当配置小点,而任务并发数与CELERYD_CONCURRENCY配置项有关,每增加一个worker必然增加内存消耗,同时也影响到一个worker何时被销毁,因为celery是均匀调度任务至每个worker,因此也不宜配置过大...翻译 2019-11-11 17:09:28 · 795 阅读 · 1 评论 -
获取url
from django.urls import URLPatterndef get_all_urls(patterns, pre_fix, result): for item in patterns: part = item.pattern.regex.pattern.strip("^$") if isinstance(item, URLPatter...原创 2019-11-11 14:43:33 · 87 阅读 · 0 评论 -
django singal
Django中提供了"信号调度",用于在框架执行操作时解耦,当某些动作发生的时候,系统会根据信号定义的函数执行相应的操作一.Django中内置的 signal 类型主要包含以下几种1.Model_signals复制代码pre_init # Django中的model对象执行其构造方法前,自动触发post_init ...原创 2019-11-11 09:12:02 · 220 阅读 · 0 评论 -
zabbix host
#!/usr/bin/env python# -*- coding: utf-8 -*-import jsonimport urllib2import sysclass zabbixtools: def __init__(self): self.url = "http://192.168.100.200/zabbix/api_jsonrpc.php" ...翻译 2019-11-08 17:29:27 · 167 阅读 · 0 评论 -
django 规范
Django 规范尽量使用 Class Base View 编程, 更少代码使用 Django Form每个 URL 独立命名, 不要硬编码, 同理 Static 也是数据库表名手动指定, 不要使用默认代码优雅简洁注释明确优美测试案例尽可能完整尽可能利用 Django 造好的轮子代码风格Python 方面大致的风格, 我们采用 pocoo 的Style Guidance, 但是...原创 2019-11-08 16:34:35 · 626 阅读 · 0 评论 -
django filter&&get
def get_city_image(self, instance): try: city_image = City.objects.get(id=instance.city_id).image.url except City.DoesNotExist: #捕获City不存在的异常, 抛出异常或是自己处理 city_image = N...原创 2019-11-07 21:05:07 · 85 阅读 · 0 评论 -
装饰器权限
# 有一个装饰器 @require_user,这是对用户进行的权限管理。试想一下,一名用户可能会有多个角色# 如果对这些角色每个都定义一个装饰器,就会造成太多的冗余和重复。在这种情况下我们来看看作者是怎么做的:# 定义了一个基本类 def __init__(self, role): self.role = role def __call__(self, met...原创 2019-11-07 13:20:31 · 388 阅读 · 0 评论 -
django web 01
如果要说 flask 怎么样,我推荐看看这篇 https://wakatime.com/blog/14-pirates-use-flask-the-navy-uses-djangoPirates use Flask, the Navy uses Django 这个观点是很有兴趣的,当然我觉得海盗思维使用 django 其实更有杀伤力。大部分观点我认同,特别是性能方面的观点。用 python ...原创 2019-11-06 10:43:37 · 106 阅读 · 0 评论 -
drf安全问题
DRF有一套自定义性很高的鉴权机制。因为其为一个API框架,所以面向的前端可能是浏览器,也可能是手机APP,所以常规Web中以Cookie和Session授权的方法就不一定有效了。DRF内置了三种授权(authentication)方法:HTTP基础认证、Session、Token。HTTP基础认证适合于纯浏览器的前端环境,Session适合于浏览器或基于浏览器内核的应用程序,Token适合无...翻译 2019-11-05 13:55:05 · 254 阅读 · 0 评论 -
将表数据写到excel
#导出excel表格数据def datainput(request): type = request.GET.get('activity','') key = request.GET.get('gjz','') timereport =request.GET.get('dateTime','') if timereport != '': a = t...原创 2019-11-02 10:55:00 · 102 阅读 · 0 评论 -
装饰器
from django.contrib.auth.decorators import login_required@login_required(login_url='/accounts/login/')def my_view(request): ...from django.contrib.auth.decorators import user_passes_testd...原创 2019-11-01 09:32:04 · 102 阅读 · 0 评论 -
多线程
# coding:utf-8import socketimport threadingimport timeEOL1 = '\n\n'EOL2 = '\n\r\n'body = '''Hello, world! <h1> from earth </h1> - from {thread_name}'''response_params = [ 'HTT...原创 2019-10-31 13:45:09 · 296 阅读 · 0 评论 -
drf的封装
# 第三种写法:from rest_framework.generics import CreateAPIView,\ ListCreateAPIView,\ DestroyAPIView,\ ...原创 2019-10-26 21:58:29 · 856 阅读 · 0 评论 -
Django model 更新
for attr, value in validated_data.items():setattr(instance, attr, value)instance.save()Book.objects.filter(pk=pk).update(**d)Book.objects.create(**d)instance, created = Book.objects.get_or_create...原创 2019-10-16 20:25:55 · 875 阅读 · 0 评论 -
django model 序列化
import datetimefrom django.core.exceptions import ObjectDoesNotExistfrom django.conf import settingsfrom django.db import modelsfrom django.core.files import Fileclass ModelSerializationMixin:...原创 2019-09-20 10:32:50 · 304 阅读 · 0 评论 -
drf
APIViewAPIView是drf概念体系中最基本类视图,它基于Django的View,同时又实现了一层对自己创造的概念的封装,比如permission_classes,render_classes,authentication_classes等,相当于请求过来后又进入一层,过滤(验证、初始化)完要走的这些classes,才能执行到我们自己实现的view。Mixin在介绍Generic v...原创 2019-09-03 10:34:35 · 1405 阅读 · 0 评论 -
django 常见问题
1.django向数据库中添加中文时报错解决方案:创建数据库的时候设置编码格式2.django的信号使用无法触发信号里的内容解决方案:在django 1.7后,使用信号时候需要在应用配置类中的ready() 方法中连接。所以我们需要配置先ready()需要在以下两个地方写入配置需要在项目的app.py,init.py两个文件中写入配置3.django-admin.py:未找到命令解...原创 2019-09-02 17:33:45 · 492 阅读 · 0 评论 -
django 汇总url
import sysfrom django.core.management import BaseCommandfrom django.conf.urls import RegexURLPattern, RegexURLResolverfrom django.core import urlresolversdef collect_urls(urls=None, namespace=N...翻译 2019-08-16 13:41:32 · 129 阅读 · 0 评论 -
celery 实践总结
尽量不要使用数据库作为 AMQP Broker对于不同的 task ,尽量使用不同的队列来处理。定义具有优先级的 workers使用 celery 的错误处理机制@app.task(bind=True, default_retry_delay=300, max_retries=5)使用 Flower只有在真正需要时才去追踪 celery 的 result不要将 Database...翻译 2019-08-15 10:19:32 · 346 阅读 · 0 评论 -
跨域的处理
INSTALLED_APPS = [ ... 'corsheaders', ... ] MIDDLEWARE_CLASSES = ( ... 'corsheaders.middleware.CorsMiddleware', 'django.middleware.common.CommonMiddleware', # 注意顺序 ......转载 2019-07-03 23:29:52 · 164 阅读 · 0 评论 -
python之pillow的使用
导入pillow模块import PILfrom PIL import Image图像的读写操作im1=Image.open("lily.jpg")im2=Image.Image()im1,im2im1.show()im2.show()另存文件im1.save(lily_1.jpg)获取图像信息im1.filename( size mode getbands() format info r原创 2015-12-08 11:23:10 · 956 阅读 · 0 评论 -
django第一个项目
开始我们的django之旅。环境 win7 python3.4先切换到命令行 选择一个目录存放代码文件 cd C:\Python34\workspace2 django-admin.py startproject mycsdnblogcd mycsdnblogpython m原创 2015-12-05 20:54:34 · 274 阅读 · 0 评论