django怎么一个人认证一个(2023年最新解答)
导读:今天首席CTO笔记来给各位分享关于django怎么一个人认证一个的相关内容,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
django中后台admin我是自己写的,现在要用用户认证这块了,感觉他自带的认证功能比较好,如何使用呢不是使用自带admin的时候,有个配置文件捏,主要在那个文件里面改就好了,admin的实质其实就是一个工厂而已,配置了在系统第一次加载的时候就已经全部生成,默认路径是admin,既然你自己写了admin模块,你把你写的url路径换一个,那么在访问的时候,就两个都能访问了撒,比如你的admin最开始的基本路径叫admin1,就和默认admin分开了,想用那个服务,调用哪一个就好了
django如果在多个app使用各自的用户多认证
这个不能再settings.py里面直接配置,配置了以后这个配置文件写的就是默认Auth系统了,想要用到各自的用户表来认证话,你在每个App的models.py和admin.py里面分别继承Django自带的Auth系统,fromdjango.contrib.authimportauthenticate,login,logout这句话就可以解决views里面的登录与退出;fromdjango.contrib.auth.modelsimportUser就可以继承User的models。
觉得好的话采纳一下哦
如何利用Django-auth做用户认证首先,让我们开始创建项目和APP,前面我也很详细的说明了如何创建项目和APP。
创建数据库,和相关用户的权限。
root@CD-FTP-VPN:/opt/jastme#tree
.
|--jastme
||--__init__.py
||--__init__.pyc
||--settings.py
||--settings.pyc
||--urls.py
||--urls.pyc
||--wsgi.py
|`--wsgi.pyc
|--login
||--admin.py
||--__init__.py
||--__init__.pyc
||--models.py
||--models.pyc
||--tests.py
||--views.py
|`--views.pyc
|--manage.py
`--start.sh
2directories,18files
root@CD-FTP-VPN:/opt/jastme#
使用pythonmanage.pysyncdb来创建一个叫jastme,密码为jastme的超级用户。我们可以用Django-admin来管理这些用户。
首先看看setting.py
root@CD-FTP-VPN:/opt/jastme#morejastme/settings.py
"""
Djangosettingsforjastmeproject.
Formoreinformationonthisfile,see
Forthefulllistofsettingsandtheirvalues,see
"""
#Buildpathsinsidetheprojectlikethis:os.path.join(BASE_DIR,...)
importos
BASE_DIR=os.path.dirname(os.path.dirname(__file__))
#Quick-startdevelopmentsettings-unsuitableforproduction
#See
#SECURITYWARNING:keepthesecretkeyusedinproductionsecret!
SECRET_KEY='r!1=i^3qhwglr(zf*9n*ii!b_oy2h()ics(6(de3wuo0-oh8h'
#SECURITYWARNING:don'trunwithdebugturnedoninproduction!
DEBUG=True
TEMPLATE_DEBUG=True
ALLOWED_HOSTS=[]
#Applicationdefinition
INSTALLED_APPS=(
#'django.contrib.admin',#注释掉admin
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'login',
)
MIDDLEWARE_CLASSES=(
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
#'django.middleware.csrf.CsrfViewMiddleware',#这个中间件是防止跨站攻击的。有意思的朋友可以去搜索下。
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
)
ROOT_URLCONF='jastme.urls'
WSGI_APPLICATION='jastme.wsgi.application'
#Database
#
DATABASES={#数据库的相关配置
'default':{
'ENGINE':'django.db.backends.mysql',
'NAME':'jastme',
'USER':'jastme',
'PASSWORD':'jastme',
'HOST':'localhost',
'PORT':'3306',
}
}
#Internationalization
#
LANGUAGE_CODE='en-us'
TIME_ZONE='Asia/Shanghai'
USE_I18N=True
USE_L10N=True
USE_TZ=True
#Staticfiles(CSS,JavaScript,Images)
#
STATIC_URL='/static/'
TEMPLATE_DIRS=(#模板的路径
'/var/www/jastme/',
)
views.py
root@CD-FTP-VPN:/opt/jastme#morelogin/views.py
fromdjango.shortcutsimportrender
fromdjango.contribimportauth
#Createyourviewshere.
fromdjango.shortcutsimportrender_to_response
fromdjango.contrib.authimportauthenticate,login
fromdjango.template.loaderimportget_template
fromdjango.templateimportContext
fromdjango.httpimportHttpResponse,HttpResponseRedirect
fromdjango.contrib.auth.decoratorsimportlogin_required
defmy_login(request):#我们自定义一个函数,这个函数名字一定不要写成login,因为Django有有login模块。
ifrequest.method=='POST':#我们使用POST的方法来获取从HTML传递过来的表单内容
username=request.POST['username']#获取账号和密码
password=request.POST['password']
user=authenticate(username=username,password=password)#我们用user来实例化authenticate(username=username,password=password)
ifuserisnotNone:#用户名不为空
ifuser.is_active:#为激活用户
login(request,user)#调用django.contrib.auth中的login函数,可以具体去看看源码
returnHttpResponseRedirect('/main')#登陆成功就重定向到主页
else:
login_error='loginerror.'
returnrender_to_response('login.html',{'login_error':login_error,'is_display':'display:block'})#失败则返回登陆页面
returnrender_to_response('login.html',{'is_display':'display:none'})#同理
@login_required#调用了这个修饰器,就可以让这个页面在成功登陆后才能访问
defmain(request):
returnHttpResponse('loginsucess')#直接返回这个字符串
再看看urls.py
root@CD-FTP-VPN:/opt/jastme#morejastme/urls.py
fromdjango.conf.urlsimportpatterns,include,url
#fromdjango.contribimportadmin
fromlogin.viewsimportmy_login,main#这里是我们导入的项目中的views.py中的模块,就是我们自己写的函数
#fromdjango.contrib.auth.viewsimportlogin,logout
urlpatterns=patterns('',
#Examples:
#url(r'^$','jastme.views.home',name='home'),
#url(r'^blog/',include('blog.urls')),
#url(r'^admin/',include(admin.site.urls)),
(r'^main/$',main),
(r'^login/$',my_login),
)
login.html
root@CD-FTP-VPN:/var/www/jastme#pwd
/var/www/jastme
root@CD-FTP-VPN:/var/www/jastme#ls
login.html
formaction=""method="POST"#在此页面以POST的方式来提交参数
inputtype=textname="username"
inputtype=textname="password"
inputtype=submitvalue="send"
/form
结语:以上就是首席CTO笔记为大家介绍的关于django怎么一个人认证一个的全部内容了,希望对大家有所帮助,如果你还想了解更多这方面的信息,记得收藏关注本站。
终结者1里面施瓦辛格刚开始进入一个酒吧,酒吧里面放的什么歌曲_百度知 ...
朋友,我再提醒你一句,您问题问的是终结者1,而不是终结者2,原则上说,这个问题是没有答案的。您如果再开个问题,把1改成2提问,应该会有些收获的。算了,还是告诉你吧,T2开头酒吧的音乐名字叫做《i'll be back 》下载地址:http:\/\/cd04.static.jango.com\/music\/05\/83\/56\/0583567949.mp3 ...
宋祖英上海世博演唱会中和一个外国男高音唱的歌名叫什么?这种类型好听...
给个链接 http:\/\/www.gxccedu.com\/MP3\/gwjd\/ttsg.mp3 还有一首canto della terra 链接 http:\/\/cd04.static.jango.com\/\/music\/\/09\/12\/81\/0912816279.mp3 还有兴趣的话可以听听看他和席琳迪翁的the prayer 链接 http:\/\/ichiba.geocities.jp\/ejs_nw\/CelineDion_08ML218.mp3 毕竟都是大师级的人,唱的再怎...
一首英文歌,有句歌词是l believe you ,一个女生唱
I believe in you:http:\/\/cd04.static.jango.com\/\/music\/\/00\/33\/67\/0033677712.mp3 唱泰坦尼克号的那个女的唱的.
僪衫西黄: 首先我们要新建一个用户名,用来登陆管理网站,可以使用如下命令:python manage.py createsuperuser 输入想要使用的用户名:Username (leave blank to use 'administrator'): user01 输入email:Email address: (在这里输入你的自己的邮箱帐号) 输入密码,需要输入两次,并且输入密码时不会显示出来:Password:Password (again):当两次密码都相同的时候,就会提示超级帐号创建成功.Superuser created successfully.运行服务:python manage.py runserver
丹东市13598911459: django怎么创建一个简单的用户授权系统 - ?
僪衫西黄: django认证系统包含三个部分:用户、权限和分组...如果不是使用django-admin.py创建项目的可以通过在...django自带一个简单的权限系统
丹东市13598911459: 如何安装配置Django环境 - ?
僪衫西黄: 一、安装Django 1. 通过pip安装Django 如果你是通过升级的方式安装Django,那么你需要先卸载旧的版本. Django提供3种发行版本,推荐使用官方的稳定版本:你的操作系统提供的发行版本(Linux) 官方稳定版本(推荐) 开发测试版本 ...
丹东市13598911459: django 多对多怎么插入数据 - ?
僪衫西黄: 1. 首先你需要建立django的对象模型2. 建立两个模型之间的关系表3. 将数据保存到关系表中.具体的插入方法,可以参考:http://www.redicecn.com/html/Python/20120505/399.html 如果解决了您的问题请采纳!如果未解决请继续追问
丹东市13598911459: 菜鸟求助.django中我想建一个用户表(名,密码),和一个个人信息表(名,头像,出生年月等). - ?
僪衫西黄: class User(models.Model): username = models.CharField(max_length=50,blank=False) password = models.CharField(max_length=50,blank=False) class UserInfo(models.Model): user= models.ForeignKey(User) address = models.CharField(max_length=50,blank=False) email = models.CharField(max_length=50,blank=False)直接通过外键ForeignKey关联
丹东市13598911459: Django用户登录验证跳转问题 - ?
僪衫西黄: 你没有用django自带的admin模块么?如果用自带的,他是不弹出窗口的,是个错误的MSG,在登录窗体的上方,红色字体显示;这个admin启用之后,就自动有登录界面和错误提示的,不需要自己再写任何代码;如果你想修改他的登录界面,可以把他的模板文件拷贝到自己的templates目录下的admin目录下,然后找到里面的文件,具体自己找找,里面就可以自己加JSP代码.
丹东市13598911459: django中怎么设置单个session的失效时间 - ?
僪衫西黄: set_expiry(value): 设置cookie的有效期.可以传递不同类型的参数值:• 如果值是一个整数,session将在对应的秒数后失效.例如request.session.set_expiry(300) 将在300秒后失效.• 如果值是一个datetime或者timedelta对象, 会话将在指定的日期失效 • 如果为0,在用户关闭浏览器后失效 • 如果为None,则将使用全局会话失效策略 失效时间从上一次会话被修改的时刻开始计时.详细参考:刘江的django教程
丹东市13598911459: django 怎么理解一对多 多对多 - ?
僪衫西黄: 这其实是传统关系数据的实体关系建模的内容,实体和实体之间的连接关系.比如说一个人只能有一个父亲,一个父亲可以有多个孩子这就是,父亲和孩子之间就是1对多.如果父亲有两个弟弟,2个儿子,那父亲的孩子就有2个叔叔,每个叔叔都有个2个侄子,这就叫做多对多.
丹东市13598911459: 用django自带的用户登录怎么实现 - ?
僪衫西黄: 初学python和django,做个简单的注册登录功能,供初学者参考. 首先是创建项目,django-admin.py startproject demo 接着创建应用,因为功能简单,所以只创建一个应用 django-admin startapp blog 说明下,数据库我用的是mysql,在settings....
丹东市13598911459: 想用django中的form写出一个填写个人信息的功能,想实现如果已经填写过个人信息,即数据库已经存在信息, - ?
僪衫西黄: view中的处理函数,如果请求方式为默认,则从数据库中读取数据,通过上下文传递到模板绑定,如果是POST,则接收更新处理:def handle_data(request,rid): if form.method=="POST": #检索表单值,更新数据 else: r = Resume.objects.get(pk=rid) ... return render(request,'test.html',{"resume":r}) 模板页