当前位置: 首页 > 网络应用技术

如何获得Django的许可(2023年最新的完成)

时间:2023-03-08 16:27:19 网络应用技术

  简介:许多朋友问有关Django如何获得许可的问题。首席执行官在本文中注明将为您提供详细的答案,以供所有人参考。我希望这对每个人都会有所帮助!让我们一起看看!

  Django的用户权限管理也是该行业相对常见的RBAC(基于角色的访问控制)的权限控制模型。实际上,非常简单:查看用户是否有权访问页面(查看),取决于是否取决于是否取决于该用户具有访问此页面的必要字符(角色)。用户的所有字符都有两种获取方法,1。1.它直接分配给该用户的角色。2.这是该用户拥有的所有组的作用。该用户间接具有这些权限。

  首先,让我们开始创建项目和应用程序。我还详细解释了如何详细创建项目和应用程序。

  创建数据库和授权用户。

  root@cd-ftp-vpn:/opt/jastme#树

  然后,然后

  | - jastme

  | - __init__.py

  || - __ Init __。pyc

  || - settings.py

  || - settings.pyc

  || - urls.py

  || - urls.pyc

  || -wsgi.py

  |`-wsgi.pyc

  | - 登录

  || - admin.py

  | - __init__.py

  || - __ Init __。pyc

  || -models.py

  || -models.pyc

  || - tests.py

  | - views.py

  |`-Views.pyc

  | - manage.py

  ` - start.sh

  2个目录,18个文件

  root@cd-ftp-vpn:/opt/jastme#

  使用python manage.py syncdb创建一个名为jastme的超级用户,密码为jastme。我们可以使用django-admin来管理这些用户。

  首先查看setter.py

  root@cd-ftp-vpn:/opt/jastme#更多jastme/settings.py

  ”“”

  Jastme项目的Django设置。

  有关此文件的更多信息,请参阅

  有关设置及其价值的完整列表,请参阅,请参阅

  ”“”

  #这样的项目内构建路径:OS.Path.join(base_dir,...)

  导入操作系统

  base_dir = os.path.dirname(os.path.dirname(__file__))

  #快速 - 启动开发设置 - 适用于生产

  # 看

  #安全警告:保留生产秘密中的秘密密钥使用!

  secret_key ='r!1 = i^3qhwglr(zf*9n*ii!b_oy2h()ICS(6(de3wuo0-oh8h')

  #安全警告:不要随着调试而运行!

  调试= true

  template_debug = true

  允许_host = []

  #应用程序定义

  instasted_apps =((

  #'django.contrib.admin',#Note Drop Admin

  'django.contrib.auth',

  'django.contrib.contenttypes',

  'django.contrib.sessions',

  'django.contrib.messages',

  'django.contrib.staticfiles',

  '登录',

  治愈

  mideware_classes =(

  'django.contrib.sessions.middleware.sessionmiddleware',

  'django.middleware.common.commonmiddleware',

  #'django.midderware.csrf.csrfviewmiddleware',#此中间件是为了防止交叉点攻击。启动朋友可以搜索。

  'django.contrib.auth.middle.authenticationmiddleware',,

  'django.contrib.auth.midderware.sessionauthenticationmiddleware',

  'django.contrib.messages.middle.messagemiddleware',,

  'django.middleware.clickjackinginginginginginginginginginging

  治愈

  root_urlconf ='jastme.urls'

  wsgi_application ='jastme.wsgi.application'

  #数据库

  #

  数据库= {#database相关配置

  '默认': {

  '引擎':'django.db.backends.mysql',

  “名字”:'jastme',

  “用户”:'jastme',

  “密码”:'jastme',

  “主持人”:“ localhost”,

  '端口':'3306',

  }

  }

  #国际化

  #

  lanking_code ='en-us'

  time_zone ='亚洲/上海'

  use_i18n = true

  use_l10n = true

  use_tz = true

  #静态文件(CSS,JavaScript,图像)

  #

  static_url ='/static/'

  Template_dirs =(#模板的路径

  '/var/www/jastme/',

  治愈

  Views.py

  root@cd-ftp-vpn:/opt/jastme#更多登录/views.py

  从django.shortcuts导入渲染

  来自django.contrib导入auth

  #在这里创建您的视图。

  来自django.shortcuts导入render_to_response

  来自django.contrib.auth导入验证,登录,登录

  来自django.template.loader import_template

  来自django.template导入上下文

  从django.http导入httpresponse,httpresponsedirect

  来自django.contrib.auth.decorators导入login_required

  def my_login(请求):#we自定义一个函数。此函数名称不得将其写入登录名,因为Django具有登录模块。

  如果request.method =='post':#我们使用帖子方法获取从html传递的表单内容

  用户名= request.post ['用户名'] #get帐户和密码

  密码= request.post ['密码']

  user = authenticate(用户名=用户名,密码=密码)#我们使用用户实例化身份验证(用户名=用户名,密码=密码)

  如果使用者不是没有:#username不是空的

  如果user.is_active:#is激活用户

  登录(请求,用户)#call django.contrib.auth中的登录函数,您可以专门查看源代码

  返回httpresponseredirect('/main')#

  别的:

  login_error ='登录错误。

  返回render_to_response('login.html',{'login_error':login_error,'is_display':'display:block'})

  返回render_to_response('login.html',{'is_display':'display:none''})##

  @login_required #call此修饰符,因此仅在成功着陆后才能访问此页面

  def main(请求):

  返回httpresponse('login sucess')#直接返回此字符串

  再次查看urls.py

  root@cd-ftp-vpn:/opt/jastme#更多jastme/urls.py

  来自django.conf.urls导入模式,包括URL

  #from django.contrib导入管理员

  从login.views导入my_login,main#here是views.py在我们导入的项目中的模块,这是我们自己写的函数

  #from Django.contrib.auth.views导入登录,注销,注销

  urlpatterns =模式('',,

  # 例子:

  #url(r'^$','jastme.views.home',name ='home'),

  #url(r'^blog/',include('blog.urls'),),

  #url(r'^admin/',infulude(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

  form action =“” method =“ post”#在此页面上,在帖子中提交参数

  输入类型=文本名称=“用户名”

  输入类型=文本名称=“密码”

  输入类型=提交值=“发送”

  /形式

  该建议是在后台获取权利管理模块,以便您可以控制只能通过不同的帐号登录的权限。

  不像Python本身那么方便

  您需要在周期中判断自己,例如:

  ....做什么...

  但是,我仍然建议您在模板中少做一些事情。毕竟,该模板不用于提供计算,但它只是显示的框架。

  成功提供认证以提供以下信息

  request.user将是Django用户实例。

  请求。

  A。设置在setter.py的installled_apps中添加rest_framework.authtoken

  b。执行manage.py迁移生成令牌相关表

  如何生效,请参阅三个

  A。修改.authenticate(SELD,请求)方法以完成自定义验证

  此方法返回(用户,AM)元组或无

  b。修改.authenticate_header(SELD,请求)

  如果实现了此方法,则应返回一个字符串。该字符串将用作http 401中的www-paptenenticate标头的值未授权响应

  如果未重写.authenticate_header()方法,则身份验证方案将返回HTTP 403禁止响应时,无条件的请求被拒绝访问

  模范

  A。重写.has_permission(自我,请求,查看)

  b。rewill .has_object_permission(自我,请求,查看,obj)

  区别:

  当请求进来时,HAS_PERMISERS开始了属于DRF的三个主要认证。当您返回true时,您可以访问它。错误禁止访问。

  has_object_permissions是对某个对象的访问权,

  如果授予请求访问权限,则应将方法返回为true,否则将返回错误。

  :仅在传递视图-level has_permission检查时,实例类has_object_permission将被调用

  结论:以上是首席CTO如何引入Django的全部内容,以指出Django如何执行权限。我希望这对每个人都会有所帮助。如果您仍然想了解有关此信息的更多信息,请记住收集并关注此网站。