问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

django用什么来管理(django用来做什么)

发布网友 发布时间:2024-09-30 02:30

我来回答

1个回答

热心网友 时间:2024-11-18 01:49

本篇文章首席CTO笔记来给大家介绍有关django用什么来管理以及django用来做什么的相关内容,希望对大家有所帮助,一起来看看吧。

本文目录一览:

1、Django与supervisor 管理进程2、有大拿在Django中用过LDAP来管理用户吗3、什么是django?4、如何在Django模型中管理并发性Django与supervisor 管理进程

在Django项目中,我们需要用到一些独立于Django框架外的脚本。这样一些脚本可能需要独立的持续运行,且具有很强的可维护性,这个时候supervisor就可以排上用场了。

直接使用pip进行

使用supervisor很简单,只需要修改一些配置文件,就可以使用了。

运行

即可看到默认配置情况,但是一般情况下,我们都不要去修改默认的配置,而是将默认配置重定向到另外的文件中,不同的进程运用不同的配置文件去对默认文件进行复写即可。

默认配置说明

配置文件都有说明,且很简单,就不做多的描述了,在上面有一些建议修改的目录,若做了修改,则应先创建这些文件,需要注意权限问题,很多错误都是没有权限造成的。

现在,让我们来启动supervisor服务。

查看supervisord 是否运行:

上面我们已经把 supervisrod 运行起来了,现在可以添加我们要管理的进程的配置文件。可以把所有配置项都写到 supervisord.conf 文件里,但并不推荐这样做,而是通过 include 的方式把不同的程序(组)写到不同的配置文件里,对,就是默认配置中的最后的那个include。下面来对项目进行简单的配置。

假设我们把项目配置文件放在这个目录中: /etc/supervisor/

则我们需要修改 /etc/supervisord.conf中的include为:

测试py文件:

以下为配置文件目录 /etc/supervisor/test.conf :

配置完成以后,即可运行:

查看运行状态

打开浏览器,输入127.0.0.9001,输入用户名与密码(如果配置文件中inet_http_server中作了设置),可以看到下面这个界面:

在启动服务之后,运行:

或者直接 supervisorctl

若成功,则会进入supervisorctl的shell界面,有以下方法:

执行相关操作后,可以在web端看到具体的变化情况,如stop 程序

其实,也可以不使用supervisorctl shell界面,而在bash终端运行:

按照官方文档的定义,一个 [program:x] 实际上是表示一组相同特征或同类的进程组,也就是说一个 [program:x] 可以启动多个进程。这组进程的成员是通过 numprocs 和 process_name 这两个参数来确定的,这句话什么意思呢,我们来看这个例子。

上面这个例子会启动两个进程,process_name 分别为 foo:foo_01 和 foo:foo_02。通过这样一种方式,就可以用一个 [program:x] 配置项,来启动一组非常类似的进程。

更详细配置,点击 这里

Supervisor 同时还提供了另外一种进程组的管理方式,通过这种方式,可以使用 supervisorctl 命令来管理一组进程。跟 [program:x] 的进程组不同的是,这里的进程是一个个的 [program:x] 。

当添加了上述配置后,progname1 和 progname2 的进程名就会变成 thegroupname:progname1 和 thegroupname:progname2 以后就要用这个名字来管理进程了,而不是之前的 progname1。

以后执行 supervisorctl stop thegroupname: 就能同时结束 progname1 和 progname2,执行 supervisorctl stop thegroupname:progname1 就能结束 progname1。

实际上,默认情况下,supervisored 也是一个进程,最理想的的情况应该是将其安装为系统服务,安装方法可以参考 这里 ,安装脚本参考 这里 ,由于没有做具体的实验,此处不展开说明。

其实还有一个简单的方法,因为 Linux 在启动的时候会执行 /etc/rc.local 里面的脚本,所以只要在这里添加执行命令就可以

以上内容需要添加在 exit 命令前,而且由于在执行 rc.local 脚本时,PATH 环境变量未全部初始化,因此命令需要使用绝对路径。

在添加前,先在终端测试一下命令是否能正常执行,如果找不到 supervisord,可以用如下命令找到

有大拿在Django中用过LDAP来管理用户吗

使用环境:

python 2.7

django 1.3

python-ldap-2.4.3

django-auth-ldap-1.0.12

settings.py:

import ldap

from django_auth_ldap.config import LDAPSearch,PosixGroupType

AUTH_LDAP_SERVER_URI = 'ldap://*.*.*.*:389' #服务器URI

AUTH_LDAP_BIND_DN = "cn=admin,dc=qfei,dc=com"

AUTH_LDAP_BIND_PASSWORD = "123456"

AUTH_LDAP_USER_SEARCH = LDAPSearch("ou=staff,dc=qfei,dc=com", #查询用户

ldap.SCOPE_SUBTREE, "(uid=%(user)s)")

AUTH_LDAP_GROUP_SEARCH = LDAPSearch("ou=staff,dc=qfei,dc=com", #查找组

ldap.SCOPE_SUBTREE, "(objectClass=posixGroup)"

)

AUTH_LDAP_GROUP_TYPE = PosixGroupType(name_attr="cn")

AUTH_LDAP_USER_FLAGS_BY_GROUP = {

"is_staff": "cn=tech,ou=Tech,ou=Staff,dc=qfei,dc=com",

"is_active": "cn=tech,ou=Tech,ou=Staff,dc=qfei,dc=com",

"is_superuser": "cn=tech,ou=Tech,ou=Staff,dc=qfei,dc=com", #验证 Django 的 User 的is_staff,is_active,is_superuser

}

AUTH_LDAP_USER_ATTR_MAP = { #把LDAP中用户条目的属性 映射到 Django 的User

"username":"uid",

"password":"userPassword",

"first_name": "givenName",

"last_name": "sn",

"email":"mail",

}

AUTH_LDAP_MIRROR_GROUPS=True #注意 此为重点:当这个值为 True, LDAP的用户条目映射并创建 Django User 的时候,会自动映创建Group

AUTH_LDAP_ALWAYS_UPDATE_USER = True #是否每次都从LDAP 把用户信息 更新到 Django 的User

AUTH_LDAP_FIND_GROUP_PERMS = True #如果为True, LDAPBackend将提供基于LDAP组身份验证的用户属于的组的权限

AUTH_LDAP_CACHE_GROUPS = True #如果为True,LDAP组成员将使用Django的缓存框架。

AUTH_LDAP_GROUP_CACHE_TIMEOUT = 1800 #缓存时长

AUTHENTICATION_BACKENDS=( #设置使用 LDAPBackend

"django_auth_ldap.backend.LDAPBackend",

"django.contrib.auth.backends.ModelBackend",

)

注:

1,需要创建 django 的 User Group 表

2,当LDAP条目 同步至 django User,Group 后,同关系型数据库一样 操作 数据即可

不足:暂时 未实现 django 表 至LDAP 的数据双向同步

什么是django?

Django是用Python开发的一个免费开源的Web框架,提供了许多网站后台开发经常用到的模块,使开发者能够专注于业务部分。并且囊括的Web应用部分可以用于快速搭建高性能、优雅的网站。并且提供了通用Web开发模式的高度抽象,通过DRY的理念为频繁进行的编程作业提供了快速解决方法。

Django能在开源发行之后吸引众多追随者,离不开它所具备的以下优点:

①齐全的功能。自带大量常用工具和框架,可轻松、迅速开发出一个功能齐全的Web应用。

②完善的文档。Django已发展十余年,具有广泛的实践案例,同时Django提供完善的在线文档,Django用户能够更容易地找到问题的解决方案。

③强大的数据库访问组件。Django自带一个面向对象的、反映数据模型与关系型数据库间的映射关系的映射器,开发者无须学习SQL语言即可操作数据库。

④灵活的URL映射。Django提供一个基于正则表达式的URL分发器,开发者可灵活地编写URL。

⑤丰富的模板语言。Django模板语言功能丰富,支持自定义模板标签;Django也支持使用第三方模板系统,如jinja2等。

⑥健全的后台管理系统。Django内置了一个后台数据管理系统,经简单配置后,再编写少量代码即可使用完整的后台管理功能。

⑦完整的错误信息提示。Django提供了非常完整的错误信息提示和定位功能,可在开发调试过程中快速定位错误或异常。

⑧强大的缓存支持。Django内置了一个缓存框架,并提供了多种可选的缓存方式。

⑨国际化。Django包含了一个国际化系统,Django组件支持多种语言。

如何在Django模型中管理并发性

1、我们在我们的查询器上使用select_for_update来告诉数据库锁定对象,直到事务完成。

2、在数据库中锁定一行需要一个数据库事务 - 我们使用Django的装饰器transaction.atomic来定义事务。

3、我们使用类方法而不是实例方法 - 我们告诉数据库要上锁,然后它会返回锁的对象给我们。 为了实现这一点,我们需要从数据库中获取对象。 如果我们使用self,那么就是在操作一个已经从数据库中获取出来的对象,这个对象无法保证自己是没有被上锁的。

4、帐户中的所有操作都在数据库事务中执行。

结语:以上就是首席CTO笔记为大家整理的关于django用什么来管理的全部内容了,感谢您花时间阅读本站内容,希望对您有所帮助,更多关于django用来做什么、django用什么来管理的相关内容别忘了在本站进行查找喔。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
单位高温防护欠缺致员工中暑如何对待 狗狗为什么爱看视频 360浏览器怎么设置倍速播放 ...先讲女主的灵魂飘荡了一段时间,然后重生,请问是那本? 拯救者散热器怎么开 电脑如何一键还原系统电脑一键还原怎么操作 神舟笔记本电脑怎么重新设置神舟战神bios恢复出厂设置 神舟电脑恢复出厂设置神舟战神怎么恢复原厂系统 水泥楼梯如何铺木楼梯 家里面楼梯是水泥的不想铺地毯或者地砖还能铺什么 鬼灭之刃看的顺序是什么 django的ldap怎么用? django迁移文件是什么意思(2023年最新整理) django用的数据库是哪个(python django 数据库) django的orm是什么意思 非正常死亡死亡证明在哪里开 扭伤脚踝用什么药 内脚踝扭伤用什么药好 又跟我一样不小心的扭伤了自己脚踝的,这种疼痛太难受了,想要找点好的... 微信怎么批量删除朋友圈 微信如何批量删除朋友圈 祭司是干什么用的? photoshop2里红眼工具怎么用? 景泰一中高一13班期末成绩 景泰一中2015~2016高一期中考试成绩 空调开16度一小时多少度电? 空调开16度一天用多少电呢? ...draw中不小心把cmyk调色板弄没了,如何才能显示出来. 谷歌chrome浏览器打不开 养二十头牛国家补贴多少 发生电器火灾后,首先应该采取的第一条措施… 酷喵芒果极光奇异果哪个资源多 为什么索尼T2拍照出现断层现象 奇异果自动续费能退吗 我想问问索尼T2的触摸屏好用么? 卡西欧ex z80和sonyT2,哪个好点 索尼t2 不知道怎么了!!!着急啊 索尼T2值得买嘛?? 能经德起三年嘛?? 关于卡片数码相机问题Sony T2 ...为什么上网老是下载不下客户端拜托了各位 谢谢 ...我家机子上网速度很慢,下载东西都是几KB(迅雷)拜托了各位 谢谢 ...下载什么速度都为0?我是在家里的拜托了各位 谢谢 我家的电脑迅雷为什么下载什么都搜索不到资源?拜托了各位 谢谢 为什么我的手机一到晚上就不能用流量下载了呢 ...怎么酷狗下载歌非常慢,4,5分钟都下不了1首阿??拜托了各位 谢谢... ...指的是不要连接陌生wifi,有些wifi容易导致支付账号密 我家音速安装不了了,为什么啊?拜托了各位 谢谢 ...也能正常上网,玩游戏也可以,但是不能下载东西,一下就掉线,又那拉高... 防范电信诈骗:() 去日本留学,为什么还需要学英语? 英语水平不好对去日本留学有哪些影响?