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

郑州做网站熊掌号上海网站科技

郑州做网站熊掌号,上海网站科技,玉树北京网站建设,做网站需要的服务器Checks 源码分析 Django 的 checks 模块提供了一系列的检查函数#xff0c;用于检查 Django 项目的配置是否正确。 文件结构 . ├── __init__.py ├── async_checks.py ├── caches.py ├── compatibility │ ├── __init__.py │ └── django_4_0.py ├─…Checks 源码分析 Django 的 checks 模块提供了一系列的检查函数用于检查 Django 项目的配置是否正确。 文件结构 . ├── __init__.py ├── async_checks.py ├── caches.py ├── compatibility │ ├── __init__.py │ └── django_4_0.py ├── database.py ├── files.py ├── messages.py ├── model_checks.py ├── registry.py ├── security │ ├── __init__.py │ ├── base.py │ ├── csrf.py │ └── sessions.py ├── templates.py ├── translation.py └── urls.py3 directories, 17 files可以学习的地方 对项目的可靠性检查方面可以借鉴 Django 的设计可以包括 内置的 contrib 如 adminasync_support 特性检查如是否在不支持的环境下开启了异步支持缓存配置检查如是否使用了过期时间短的缓存数据库配置检查如是否使用了过期时间短的数据库连接模型检查如是否有重复的模型名称安全检查如是否开启了 CSRF 保护是否使用了过期时间短的 session模板检查翻译检查URL 检查siangls 检查files 文件系统检查 使用inspect.func_accepts_kwargs函数强制让函数参数中包含**kwargs 同样的函数还有func_accepts_var_args,强制让函数参数中包含*args func_supports_parameter置顶 在core/checks/registry.py CheckRegistry 类方法提供了利用装饰器机制封装了函数register用于注册检查。 class CheckRegistry:def __init__(self):self.registered_checks set()self.deployment_checks set()def register(self, checkNone, *tags, **kwargs):Can be used as a function or a decorator. Register given functionf labeled with given tags. The function should receive **kwargsand return list of Errors and Warnings.Example::registry CheckRegistry()registry.register(mytag, anothertag)def my_check(app_configs, **kwargs):# ... perform checks and collect errors ...return errors# orregistry.register(my_check, mytag, anothertag)def inner(check):if not func_accepts_kwargs(check):raise TypeError(Check functions must accept keyword arguments (**kwargs).)check.tags tagschecks (self.deployment_checksif kwargs.get(deploy)else self.registered_checks)checks.add(check)return check# 如果你的check函数是一个callable对象那么直接返回inner(check)if callable(check):return inner(check)else:if check:tags (check,)return inner为项目建立一个 runtime 检查机制通过这些 checks 来确保项目的运行正确。 id 可以确保所有 errors 和 warnings 的唯一性并提供一种过滤 id 和 level 机制来忽略特定的错误。 class CheckMessage:def __init__(self, level, msg, hintNone, objNone, idNone):if not isinstance(level, int):raise TypeError(The first argument should be level.)self.level levelself.msg msgself.hint hintself.obj objself.id iddef __eq__(self, other):return isinstance(other, self.__class__) and all(getattr(self, attr) getattr(other, attr)for attr in [level, msg, hint, obj, id])def __str__(self):from django.db import modelsif self.obj is None:obj ?elif isinstance(self.obj, models.base.ModelBase):# We need to hardcode ModelBase and Field cases because its __str__# method doesnt return applabel.modellabel and cannot be changed.obj self.obj._meta.labelelse:obj str(self.obj)id (%s) % self.id if self.id else hint \n\tHINT: %s % self.hint if self.hint else return %s: %s%s%s % (obj, id, self.msg, hint)def __repr__(self):return %s: level%r, msg%r, hint%r, obj%r, id%r % (self.__class__.__name__,self.level,self.msg,self.hint,self.obj,self.id,)def is_serious(self, levelERROR):return self.level leveldef is_silenced(self):from django.conf import settingsreturn self.id in settings.SILENCED_SYSTEM_CHECKSclass Debug(CheckMessage):def __init__(self, *args, **kwargs):super().__init__(DEBUG, *args, **kwargs)class Info(CheckMessage):def __init__(self, *args, **kwargs):super().__init__(INFO, *args, **kwargs)class Warning(CheckMessage):def __init__(self, *args, **kwargs):super().__init__(WARNING, *args, **kwargs)class Error(CheckMessage):def __init__(self, *args, **kwargs):super().__init__(ERROR, *args, **kwargs)class Critical(CheckMessage):def __init__(self, *args, **kwargs):super().__init__(CRITICAL, *args, **kwargs)
http://www.pierceye.com/news/262223/

相关文章:

  • a站为什么不火了站群宝塔批量建站
  • 免费网站建设pptlinkcat wordpress
  • html5 网站大连在哪里哪个省
  • php个人网站源码国家企业信用信息公示系统官网山东
  • 丹东做网站哪家好事件营销的方法
  • wordpress建立网站wordpress 媒体文件夹
  • 响应式网站 框架天津市建设行业联合会网站
  • mc做图的网站深圳注册公司推荐
  • 广告公司怎么设置网站关键字网片的重量计算公式
  • 外贸网站都有哪些wordpress侧边栏选项卡
  • 北京网站建设 降龙网asp.net建网站
  • 中小网站建设新手自己做网站
  • 建网站手机如何建设网站并与数据库相连
  • 网站建设公司的客户个人网站做哪些内容
  • 外贸公司网站推广怎么让公司建设网站
  • 网站开发语长沙网站建设商城
  • 手机刷网站排名软件建设银行网站怎么登录密码忘了怎么办
  • 利用海康威视做直播网站鞍山网站建设找金航
  • 做网站大概花多少钱商圈云分销软件下载
  • 万户网站制作网站跳转怎么做
  • 网站开发全程设计做网站推广的公司发展前景
  • 电商设计网站培训建设网站域名
  • 石家庄免费专业做网站网站建设投标书服务方案范本
  • 怀孕单子图片在线制作北京seo服务行者
  • 网站备案 子域名云南商城网站建设
  • 上传到服务器的网站打开是空白网站报备流程
  • 如何用ps做网站标识一个叫mit做app的网站
  • 网站免费网站免费主流网站模板
  • 湖州市交通建设管理局网站牌具做网站可以吗
  • 湖南鸿泰电力建设有限公司网站西安做小程序的公司