在django的开发中,很多时候我们希望app在admin中显示成我们想要的中文名,而不是显示默认的app_label名称。...在导入app时,django会检查每个在INSTALLED_APPS中的app的default_app_config变量,如果没有设置,django会使用基类AppConfig,因此我们只需要在init.py...所在的路径填写 通过以上两步,即可实现自定义app在admin中的显示名称。...经过以上步骤的操作,在自带的admin 和 xadmin 中都能显示出来 ? 自带的admin中的显示效果 ?...xadmin中的显示效果 内容方法来源:https://www.jianshu.com/p/69e6f9c97b48
题目部分 在Oracle中,如何让日期显示为“年-月-日 时:分:秒”的格式?...答案部分 Oracle的日期默认显示为以下格式: SYS@PROD1> select sysdate from dual; SYSDATE --------- 22-DEC-17 阅读不方便,此时可以通过设置...NLS_DATE_FORMAT来让日期显示更人性化,可以有如下几种方式: ① 在会话级别运行命令:“ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD HH24:...MI:SS';”,只在会话级别起作用。...PROD1> select sysdate from dual; SYSDATE ------------------- 2017-12-22 06:51:18 & 说明: 有关NLS_DATE_FORMAT的更多内容可以参考我的
简介 在前面的文章中,我们已经学习了一些基础知识。现在,我们将正式开始项目的搭建。本项目的组成包括以下两个主要部分: 提示词以及各种API均配置在Django中。...用户交互则使用最近非常流行的Gradio框架。 在本地开发时,我们将暂时手动启动Gradio项目。后期准备上线时,将各个服务放到Docker中,让它们各自自动启动。...创建Gitee的项目仓库 为了项目的版本管理以及后期推送到服务器,我建议大家把代码都上传到Gitee上,之所以没有使用GitHub是因为它的访问不是很稳定。...为了后续编码方便,我们后续的操作将会在IDE中进行,这里我使用的PyCharm你可以根据自己的喜好选择其他的编辑,如果你是第一次接触Django,我建议你和我使用同样的IDE,这样更不容易出错。...可以看到是正常工作的,我们在新开一个命令行窗口,在项目的根目录下运行以下命令 python manage.py runserver 启动好之后,我们再访问一下这个地址看看效果 可以看到也是可以正常显示的
最近,有读者留言让我推荐开源 CMS。我本想直接回复 WordPress,但是转念一想我玩 WordPress 是 2010 年左右的事情了,都过去十年了,它会不会有些过时呢?...CMS 的 Django CMS(Python)、星数最多的 strapi(JavaScript)等等。...相信你看完这篇文章就会知道:什么是 CMS、什么是无头 CMS、它们能用来做什么,甚至可以头头是道地向别人介绍几款,让人眼前一亮的开源 CMS 呢! 闲话少叙,让我们直接开始今天的分享。 1....1.1 halo Star 数:24.4k|编程语言:Java(99.5%) 一款由国人开发的现代化开源 CMS,采用 Spring Boot+Vue.js 编写而成,代码开源完全免费,截止到本文发表时已经迭代了...独特的 StreamField 技术,可以让内容排版灵活又不失结构,再加上强大的多语言系统,让它在众多开源 CMS 中脱颖而出。
视图写完后,要与URL进行映射,也即用户在浏览器中输入什么url的时候可以请求到这个视图函数。在用户输入了某个url,请求到我们的网站的时候,django会从项目的urls.py文件中寻找对应的视图。...那么如何在django中实现这种需求呢。 第一种:这时候我们可以在path函数中,使用尖括号的形式来定义一个参数。...URL模块化 URL中包含另外一个urls模块: 在我们的项目中,不可能只有一个app,如果把所有的app的views中的视图都放在urls.py中进行映射,肯定会让代码显得非常乱。...因此django给我们提供了一个方法,可以在app内部包含自己的url匹配规则,而在项目的urls.py中再统一包含这个app的urls。使用这个技术需要借助include函数。...1.为什么需要URL命名 因为在项目开发的过程中URL地址可能经常变动,如果写死会经常去修改 2.如何给一个URL指定名称 path("",views.index,name="index") 3.应用命名空间
反正我所在的公司,单元测试和功能测试都是要写的。但是,我相信他们需要有个三次握手的过程: ? 这就有点像开发团队和产品团队在互相推诿责任,“你们的需求实现不了”,“你们开发的东西有问题”。...然后这本书就在重复上面的过程,过程中你学会了怎么使用Django。但是,你并不会意识到这其中的美妙之处。 红-绿-重构 实现上,我们在重复的过程是:红-绿-重构。...通常来说,红的原因是因为我们依据客户需求编写测试用例。接着,通过让测试变绿(成功),我们就知道我们实现了这个功能。如果你的功能代码写得很好,那么你不就需要去重构代码了。...所以,其实重构代码的前提是你已经有了测试,而TDD就是在保证你有测试来cover功能代码。 所以,如果你所在的项目之所以没有人敢重构,就是因为测试覆盖率不够。...(ps: 我的博客就是 Django + Nginx + Gunicorn + Mezzanine (CMS) + Fabric (Mezzanine自带),但是没有Jenkins) 忘说了,上面的所有内容都是敏捷的开发流程
问题背景在大型企业中,网站和内部网的建设至关重要,但企业在选择框架/内容管理系统(CMS)时往往面临诸多难题。这些难题包括:稳定性和可靠性: 企业网站和内部网需要稳定可靠,以确保业务的正常运营。...一些成熟稳定的框架/CMS包括: Python + Django:Django是Python编程语言开发的一个高层次Web框架,以快速开发网站而闻名。...企业可以通过以下方式进行测试: 单元测试:单元测试是一种测试软件应用程序的单个函数或方法的测试方法。集成测试:集成测试是一种测试软件应用程序中不同组件如何相互协作的测试方法。...系统测试:系统测试是一种测试软件应用程序在真实环境中的性能和可靠性的测试方法。...提供完善的售后服务: 企业在选择框架/CMS后,应与框架/CMS的提供商签订完善的售后服务协议,以确保在遇到问题时能够得到及时的帮助。希望以上建议能够帮助企业在选择框架/CMS时做出正确的选择。
在Django中,如果想要防御CSRF攻击,应该做两步工作。第一个是在settings.MIDDLEWARE中添加CsrfMiddleware中间件。...第二个是在模版代码中添加一个input标签,加载csrf_token。...比如我可以在我自己的网页中加载百度的网站,示例代码如下:iframe src="http://www.baidu.com/"> 因为iframe加载的是别的域名下的网页。...如果ifrmae的src属性为空,那么就没有同源策略的限制,这时候我们就可以操作iframe下面的代码了。并且,如果src为空,那么我们可以在iframe中,给任何域名都可以发送请求。...直接在iframe中写html代码,浏览器是不会加载的。
恶意用户会插入伪造的日志数据,从而让系统管理员以为是系统行为 【建议】避免在日志中保存敏感信息 不能在日志保存密码(包括明文密码和密文密码)、密钥和其它敏感信息 1.3 系统口令 【必须】禁止使用空口令...【必须】禁止传递明文口令 【必须】禁止在不安全的信道中传输口令 2....该头用于指示浏览器禁止当前页面在 frame、 iframe、embed 等标签中展现,从而避免点击劫持问题。...Django 安全 使用 Django 框架编写代码是需要考虑和思考的问题!.../security/ 在默认配置下,Django 自带的安全特性对 XSS、CSRF、SQL 注入、点击劫持等类型漏洞可以起到较好防护效果。
这篇文章介绍了我在每个 Django 项目中都使用的 20 个包。它们为我节省了大量时间,希望对你也有帮助。...我特别喜欢shell_plus,可以在 Python shell 中自动加载数据库模型,以及 runserver_plus 用于由 Werkzeug 提供支持的改进的本地 Web 服务器。...django-storages[9] 你是否在处理用户上传的内容(在 Django 中通常称为“media”),或者为静态文件使用专用的 CDN(如 S3)?...您可以用一行代码创建许多对象,从而节省大量开发人员的时间。 whitenoise[17] 网站需要一种方法来提供静态文件,在 Python 生态系统中,默认选择是 WhiteNoise。...Black[20] Black 是一个 Python 代码格式化程序,它或多或少是 Django 社区中的默认格式化程序。将其集成到您的工作流程中将节省时间并为您和您的同事生成更具可读性的代码。
Key 曾经迷惑了很久: 为什么对于一些知识点,我需要去Google,而别人可以独立地完成的时候。我就意识到我更适合于互联网企业,据说在一些电信设备制造商里是没网的办公环境。...然而在多数的时候,这并非一种劣势。 我们会更快地方式来解决问题,因为我们有一些这方面的经验。不足则是,有时候我们没有办法深入问题去分析。 如何成为全栈工程师 这是一个有趣的问题,在知乎也有这样的讨论。...当我们心里有一个想法的时候,我就开始从一个key中进行头脑风暴,如之前做的地图搜索。我们要做的功能便是: 持久化GEO信息,在地图上显示坐标。...也似乎找到了两条更有意思的成长路线: 构架设计 在我打算试着写一个名为Echoes的CMS的时候,找到了书架上的几本书: 《架构之美》 《面向模式的软件架构》 《领域驱动设计》 《实现领域驱动设计》 《...但是,如果最高的那块木板不是那么高呢? 那么,为什么不在一开始的时候,让它尽可能的高? 于是,我想说的是我们需要在某一部分成为专家。
,angular方面的技术问题,可以移步我的其他文章),所以让我们用原生javascript来解决我们上面提到的问题吧。...通过这种方式,我们可以在A页面定义全局的方法挂载在window上,那么B页面就可以通过opener拿到A页面的方法从而控制A页面的行为。...我们想实现父页面A操控子页面A,B,并且让子页面和父页面交互,这里我们主要使用 iframe的 contentWindow parent.window 通过contentWindow,我们可以拿到iframe...内部的方法和dom元素,进而可以操控iframe页面 首先我们来看看父页面操控子页面的场景:父页面A调用子页面的方法传递一条数据,并并显示在子页面中: // 父页面 window.onload = function..." }复制代码 由上面代码我们可以知道,我们通过parent.window来拿到子页面B进而实现和子页面B通信的目的,通过这种方式,我们可以实现很多有意思的东西。
如何成为全栈工程师 这是一个有趣的问题,在知乎也有这样的讨论。而我觉得,最重要的是好奇与创造。 创造 记得在上大学之前已经有一个明确的目标,尽可能地做到能做到的程序——想到的都应该能做到。...当我们心里有一个想法的时候,我就开始从一个 key 中进行头脑风暴,如之前做的地图搜索。我们要做的功能便是: 持久化 GEO 信息,在地图上显示坐标。 1....全栈程序员进阶 在思考过一些日子后,我明白了更多的东西。...也似乎找到了两条更有意思的成长路线: 构架设计 在我打算试着写一个名为 Echoes 的 CMS 的时候,找到了书架上的几本书: 《架构之美》《面向模式的软件架构》《领域驱动设计》《实现领域驱动设计...那么,为什么不在一开始的时候,让它尽可能的高? 于是,我想说的是我们需要在某一部分成为专家。当我们在某一领域成为专家,要在另外一领域成为专家,也是很容易的一件事。
这里统一说明一下,是因为我的代码是跟着博客的进度在逐步完善的,等这个系列写完的时候才代表这个CMS系统的完成!因此,现在这个CMS系统还是一个半成品,不过我会尽快来完成的!...废话不多说,下面我们先介绍一下跨站请求伪造(XSRF/CSRF)攻击”的概念,然后再来说到一下ASP.NET Core中是如何进行处理的吧!...在我们的CMS系统中的Ajax请求就是使用的自定义HeaderName的方式进行验证的,不知道大家有没有注意到!...觉得不错的欢迎Star GitHub:https://github.com/yilezhu/Czar.Cms 码云:https://gitee.com/yilezhu/Czar.Cms 总结 今天我先从跨站点请求伪造的概念以及原理入手...,然后给大家讲解了如何进行跨站点请求伪造的处理,后面引出了在ASP.NET Core中如何对其进行处理的!
在设计商品中台的前端系统时,我们使用了微前端和可视化技术,其可以达到如下效果: 可视化技术可以让各个业务方的运营等相关人员,直观的看到其配置的数据在页面上的展示效果; 微前端可以帮助商品中台更快更好的适配到各个业务方的项目中...使用 vuex 完成 iframe 数据通信是如何实现的呢?...让可视化的实时更新更加流畅,可视化交互更加强大。 介绍完可视化,下面我将继续介绍商品中台在微前端上的实践,请大家继续往下阅读。...如下代码(简写)所示: const KEY = 'product' router = new VueRouter({ mode: 'history', base: IN_CMS ?...在将几个技术融合在一起的过程中,总是会有一些预想不到的问题,正所谓兵来将挡、水来土掩,我们用正确的心态去面对和解决这些问题即可。
接下 来,你学习了如何实现用户账户。你让老用户能够登录和注销,并学习了如何使用Django提供的 表单UserCreationForm让用户能够创建新账户。...在本节中,我将简要地介绍应用程序django-bootstrap3,并演示如何将其继承到项目中,为 部署项目做好准备。...的设置 BOOTSTRAP3 = { 'include_jquery': True, } 这些代码让你无需手工下载jQuery并将其放到正确的地方。...HTML文件的头部不包含任何内容:它只是将正确显示页面所需 的信息告诉浏览器。在5处,我们包含了一个title元素,在浏览器中打开网站“学习笔记”的 页面时,浏览器的标题栏将显示该元素的内容。...在3处,我们在导航栏的最左边显示项目名,并将其设置为到主页的链接,因为它将出现在 这个项目的每个页面中。 在4处,我们定义了一组让用户能够在网站中导航的链接。
大家好,又见面了,我是你们的朋友全栈君。...前言 Django是一个开放源代码的Web应用框架,由Python写成,最初用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站,即CMS(内容管理系统)软件,于2005年7月在BSD许可证下发布,这套框架是以比利时的吉普赛爵士吉他手...模型:数据存取层,处理与数据相关的所有事物,例如如何存取、如何验证有效性、包含哪些行为以及数据之间的关系等。 模板:表现层,处理与表现相关的决定,例如如何在页面或其他类型的文档中进行显示。...视图:业务逻辑层,存取模型及调取恰当模板的相关逻辑,模型与模板的桥梁 Django的主要目的是简便、快速地开发数据库驱动的网站。它强调代码复用,多个组件可以很方便地以插件形式服务于整个框架。...()现在返回一个列表,包含插入失败的键值 视图类:ContextMixin,extra_context属性允许在View.as_view()中添加上下文 Pagination(分页):增加Paginator.get_page
Github地址:https://github.com/stephenmcd/mezzanine Mezzanine是一个高度灵活且功能丰富的内容管理系统(CMS),基于Django框架开发。...# 文件上传通常通过Mezzanine的管理界面进行,以下是如何在代码中引用已上传的文件 from mezzanine.core.models import File # 获取并显示所有已上传的文件...# 示例代码通常不直接涉及到Python代码,因为这些功能通过Mezzanine的管理界面进行操作 # 以下是在模板中展示如何使用动态表单 {% load mezzanine_tags %} 在Django的settings.py中添加rest_framework到INSTALLED_APPS INSTALLED_APPS += ('rest_framework',) # 创建一个API...此外,其内置的多站点支持和SEO优化工具进一步增强了其在现代网站开发中的应用范围。Mezzanine是为那些寻求在Python环境中快速部署专业级网站和应用的开发者和组织的理想选择。
点击劫持保护 点击劫持中间件和装饰器提供了简捷易用的,对点击劫持的保护。这种攻击在恶意站点诱导用户点击另一个站点的被覆盖元素时出现,另一个站点已经加载到了隐藏的frame或iframe中。...一个攻击者的站点可能在他们自己的页面上会创建一个“我喜欢Ponies”的按钮,并且在一个透明的iframe中加载商店的页面,把“现在购买”的按钮隐藏起来覆盖在“我喜欢Ponies”上。...如果用户访问了攻击者的站点,点击“我喜欢Ponies”按钮会触发对“现在购买”按钮的无意识的点击,不知不觉中购买了商品。...点击劫持的防御 现代浏览器遵循X-Frame-Options协议头,它表明一个资源是否允许加载到frame或者iframe中。...'django.middleware.clickjacking.XFrameOptionsMiddleware', ... ) 这个中间件可以在startproject生成的设置文件中开启。
然后django已经提供了一个比较方便创建app的命令叫做 'python manage.py startapp [app的名称]'。把所有的代码都写在各自的app中。...2.如果开启了DEBUG模式,那么以后django项目中的代码出现bug了,那么在浏览器中和控制台会打印出错信息。 3.在生产环境中,禁止开启DEBUG模式,不然会有很大的安全隐患。...2.采用查询字符串的方式: 在url中,不需要单独的匹配查询字符串的部分,只需要在视图函数中使用'request.GET.get('参数名称')'的方式来获取,示例代码如下: '''python def...如果在代码中写死可能会经常改代码,给url取个名字,以后使用url的时候就使用它的名字进行反转就可以了,就不需要写死url了。 t ##如何给一个url指定名称?...4.实现 to_url(self,value) 方法,这个方法是在做url反转的时候,将传进来的参数转换后拼接成一个正确的url。
领取专属 10元无门槛券
手把手带您无忧上云