django怎么判断用户名(在pycharm下创建Django项目,其中有admin的用户名和密码)
本文目录
- 在pycharm下创建Django项目,其中有admin的用户名和密码
- django 怎么建立sqlite3的用户名和密码
- 我照写django怎么出错
- 如何利用Django-auth做用户认证
- django1.9.5怎么建立超级用户
在pycharm下创建Django项目,其中有admin的用户名和密码
在命令行输入python manage.py createsuperuser按照提示输入即可记得先初始化表。django》1.7 python manage.py makemigrationspython manage.py migratedjango《1.7python manage.py syncdb
django 怎么建立sqlite3的用户名和密码
models.py 中创建class。。一个class(swinfo)就是一个表!python manage.py validate validate 命令检查你的模型的语法和逻辑是否正确 python manage.py sqlall books 生成SQl文。 python manage.py syncdb 生成数据表。 python manage.py shellimport spinfo.models import swinfop1 = swinfo( , , )p1.save()sw_list=swinfo.objects.all() 》》》 sw_listobjects是models的一个管理器,以后会经常用到!这里我们看到swinfo的实例的名字还是swinfo,不是很容易理解。解决方法是为Publisher 对象添加一个方法 __unicode__()def __unicode__(self): return self.name 为了让我们的修改生效,先退出Python Shell,然后再次运行 python manage.py shell 进入。》》》 sw_list插入数据p = swinfo( , , )p.save() 更新数据 p.name = ’Apress Publishing’ p.save()*但这种更新不是轻量级的更新。***隐藏网址***
我照写django怎么出错
一、模板类型错误:错误原因:在models中漏掉了return:class UserProfile(models.Model): """ 功能说明: 扩展用户 --------------------------------------------------------------------------- 修改人 修改时间 修改原因 ------------------------------------------------------------------------------ BeginMan 2013-05-05 """ user=models.OneToOneField(User,blank=True,null=True,related_name=’user’,verbose_name=_(u’用户’)) company_name=models.CharField(u’企业(或代理商)名称’,max_length=30, default=’未知’) #企业商名称 product=models.ForeignKey(Product, blank=True,null=True,verbose_name=_(u’产品’)) #产品 class Meta: verbose_name = _(u’配置’) verbose_name_plural = _(u’用户配置’) def __unicode__(self): 【这里】_(u’%(user_name)s’) % {’user_name’:self.user.username} 这里加上return即可。二、url相关错误、静态文件无法访问,如样式出不来css样式总出不来,折腾了一个多小时,原来,urlpatterns 写成这样:urlpatterns = patterns(’’, (r’^ $’,’login.msg.index’), #首页)#登录注册urlpatterns = patterns(’’, (r’^accounts/register/$’,’login.msg.register_page’), #注册 (r’^accounts/login/$’,’login.msg.login’), #登录 (r’^accounts/logout/$’,’django.contrib.auth.views.logout’,{’next_page’:’/’}), #Django提供一个专用于处理登出表单函数logout (r’^accounts/register/success/$’,’django.views.generic.simple.direct_to_template’,{’template’:’registration/register_success.html’}), #注册成功 ) #admin后台管理urlpatterns += patterns(’’, (r’^admin/doc/’, include(’django.contrib.admindocs.urls’)), (r’^admin/’, include(admin.site.urls)),)#静态文件的访问urlpatterns += patterns(’’, (r’^site_media/(?P《path》.*)$’, ’django.views.static.serve’, {’document_root’: settings.MEDIA_SITE}), (r’^upload_media/(?P《path》.*)$’, ’django.views.static.serve’, {’document_root’: settings.MEDIA_ROOT}),)我把 url后面也写成 = 而并非+= ,这就造成了url覆盖,所以就加载不了静态文件,同时首页也会打不开。三、编码错误、错误类型如下:DjangoUnicodeDecodeError at /admin/books/book/’ascii’ codec can’t decode byte 0xe8 in position 0: ordinal not in range(128). You passed in 《Book: 》 (《class ’books.models.Book’》)解决方案:混淆了 python2 里边的 str 和 unicode 数据类型。(0)、你需要的是让编码用实际编码而不是 ascii(1)、对需要 str-》unicode 的代码,可以在前边写上import sysreload(sys)sys.setdefaultencoding(’utf8’)把 str 编码由 ascii 改为 utf8 (或 gb18030)(2)、python3 区分了 unicode str 和 byte arrary,并且默认编码不再是 ascii***隐藏网址***四、其他错误、Django POST请求错误forbidden(403) CSRF verification failed. Request aborted在 settings.py 中的MIDDLEWARE_CLASSES 设置下 添加’django.middleware.csrf.CsrfResponseMiddleware’,重新 runserver. OK***隐藏网址***我用的是django1.2.3,当使用session时,也会像上面出错,这时把下面注释掉即可:# ’django.middleware.csrf.CsrfViewMiddleware’, #这段代码理应注释掉,在使用session的时候、login:login() takes exactly 1 argument (2 given)这在登录视图函数的时候特别常见,原因就是函数login与login模块的名字冲突,如登录url这样写:(r’^account/login/$’, ’login’), #登录 那么,对应的视图函数如下:def login(request): """ 功能说明: 登 录 ------------------------------------------------------------ 开发者 修改时间 修改原因 ------------------------------------------------------------ beginman 2013-06-05 """ if request.method == "POST": try: username = request.POST.get(’username’) password = request.POST.get(’password’) user = authenticate(username=username,password=password) if user is not None: if user.is_active: login(request,user) return HttpResponse(’ok’) else: return HttpResponse(’error’) except Exception,e: log.error("login:%s" % str(e)) return render_to_response(’account/login.html’) 当然如果这样写,不要忘记导入:from django.contrib.auth import authenticate, login 这样就坏事了,因为出现了两个login.这就导致了上面的问题,解决办法有两个,、修改login视图函数的名称和对应的url中。如webLogin、导入设置:from ..login as _login 这样也行,别忘了都要改过来。、无法跳转如,我想登录。然后登录成功后跳转到主页,如上:把上面代码改写成这样.....if user.is_active: login(request,user) return HttpResponseRedirect(’/’).... 但是却没有实现跳转,如下:这里并不是跳转写错了,而是没有注意到我这个登录界面是ajax POST形式的,代码如下://登录function _submit(){ var username = $("input").val(); var password = $("input").val(); if (username == ""){ art.dialog({content: ’用户名不能为空’,time :1.5}); }else if(password == ""){ art.dialog({content: ’密码不能为空’,time :1.5}); }else{ $.post(’/account/login/’,{’username’:username,’password’:password},function(data){ if (data ==’error’){ art.dialog({content: ’用户名或密码错误’,time :1.5}); } }); }} Query.post( url, ) :如果返回,它只返回一个字符串。所以并不能在后台跳转。解决方法是: return HttpResponse(’ok’),通过接受返回的Ok 来在前台实现跳转。
如何利用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.sh2 directories, 18 filesroot@CD-FTP-VPN:/opt/jastme#使用python manage.py syncdb 来创建一个叫jastme,密码为jastme的超级用户。我们可以用Django-admin来管理这些用户。首先看看setting.pyroot@CD-FTP-VPN:/opt/jastme# more jastme/settings.py"""Django settings for jastme project.For more information on this file, see***隐藏网址***For the full list of settings and their values, see***隐藏网址***"""# Build paths inside the project like this: os.path.join(BASE_DIR, ...)import osBASE_DIR = os.path.dirname(os.path.dirname(__file__))# Quick-start development settings - unsuitable for production***隐藏网址***# SECURITY WARNING: keep the secret key used in production secret!SECRET_KEY = ’r!1=i^3qhwglr(zf*9&n*ii!b_oy2h()ics(6(de3wuo0-oh8h’# SECURITY WARNING: don’t run with debug turned on in production!DEBUG = TrueTEMPLATE_DEBUG = TrueALLOWED_HOSTS = # Application definitionINSTALLED_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 = TrueUSE_L10N = TrueUSE_TZ = True# Static files (CSS, JavaScript, Images)***隐藏网址***STATIC_URL = ’/static/’TEMPLATE_DIRS =( #模板的路径 ’/var/www/jastme/’,)views.pyroot@CD-FTP-VPN:/opt/jastme# more login/views.pyfrom django.shortcuts import renderfrom django.contrib import auth# Create your views here.from django.shortcuts import render_to_responsefrom django.contrib.auth import authenticate, loginfrom django.template.loader import get_templatefrom django.template import Context***隐藏网址***from django.contrib.auth.decorators import login_requireddef my_login(request): #我们自定义一个函数,这个函数名字一定不要写成login,因为Django有有login模块。 if request.method == ’POST’: #我们使用POST的方法来获取从HTML传递过来的表单内容 username = request.POST #获取账号和密码 password = request.POST user = authenticate(username=username, password=password) #我们用user来实例化 authenticate(username=username, password=password) if user is not None: #用户名不为空 if user.is_active: #为激活用户 login(request, user) #调用django.contrib.auth中的login函数,可以具体去看看源码 return HttpResponseRedirect(’/main’) #登陆成功就重定向到主页 else: login_error = ’login error.’ return render_to_response(’login.html’, {’login_error’ : login_error, ’is_display’ : ’display:block’}) #失败则返回登陆页面 return render_to_response(’login.html’, {’is_display’ : ’display:none’}) #同理@login_required #调用了这个修饰器,就可以让这个页面在成功登陆后才能访问def main(request): return HttpResponse(’login sucess’) #直接返回这个字符串再看看urls.pyroot@CD-FTP-VPN:/opt/jastme# more jastme/urls.pyfrom django.conf.urls import patterns, include, url#from django.contrib import adminfrom login.views import my_login,main #这里是我们导入的项目中的views.py中的模块,就是我们自己写的函数#from django.contrib.auth.views import login, logouturlpatterns = 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.htmlroot@CD-FTP-VPN:/var/www/jastme# pwd/var/www/jastmeroot@CD-FTP-VPN:/var/www/jastme# lslogin.html《form action="" method="POST"》 #在此页面以POST的方式来提交参数《input type=text name="username"》《input type=text name="password"》《input type=submit value="send"》《/form》
django1.9.5怎么建立超级用户
首先我们要新建一个用户名,用来登陆管理网站,可以使用如下命令:python manage.py createsuperuser输入想要使用的用户名:Username (leave blank to use ’administrator’): user01输入email:Email address: (在这里输入你的自己的邮箱帐号)输入密码,需要输入两次,并且输入密码时不会显示出来:Password:Password (again):当两次密码都相同的时候,就会提示超级帐号创建成功。Superuser created successfully.运行服务:python manage.py runserver
更多文章:
联想笔记本电脑y460(联想笔记本电脑y460无线开关在哪里)
2024年7月12日 23:19
联想ideapadyoga(联想ideapadyoga11s)
2024年7月19日 02:34
惠普elitebook6930p(惠普elitebook6930P)
2024年7月12日 14:31