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

如何在文件夹查看功能上致电Django(2023年的最新答案)

时间:2023-03-09 13:40:16 网络应用技术

  简介:许多朋友问有关Django如何放置在文件夹查看功能上的问题。本文的首席CTO笔记将为您提供详细的答案,以供所有人参考。我希望这对每个人都会有所帮助!让我们一起看看!

  在Django项目的开发中,就像普通的Web开发一样,不可能通过“ IMGS/BG.JPG”访问本地静态文件。有必要进行一些配置以实现静态文件访问。

  首先,在项目根路径下创建一个新的静态文件夹,然后在静态文件夹下创建相应的CSS,IMGS,JS和其他文件夹,以存储静态文件,例如CSS,IMG,JS。

  第二,项目配置

  1.打开settings.py并将其添加到底部:

  2.打开urls.py并将其添加到urlpatterns :(注意,如果您还将urls.py设置在博客目录中,则必须在blog/urls.py中进行修改。不要忘记导入设置):

  (但是在测量之后,我可以完成静态文件的访问,而无需添加此文件)

  3.在HTML模板的顶部添加:

  然后以这种格式调用您需要的格式,例如:

  最终重新运行该项目,Django可以找到本地静态文件,例如IMG。目前,可以使用IMG和其他文件显示与模板相对应的页面。

  Django的默认交易行为

  默认情况下,交易是在Django中自动提交的。当我们运行django构建的-in模板修改函数时,例如调用model.save.save()或model.delete(),交易将立即提交。此机构类似于此机构。数据库的自动提交。请记住,这里没有默认的回滚机制。

  一个认真的答案:首先在数据库中建立视图,然后在django中建立相应的模型。类对应于下表的类别,该类别大致如下

  类ViewModel(Models.Model):

  “”“”此模型类对应于您建立的视图“”“”“”

  类元(对象):

  “”“以相同的方式,此方法可用于使用MySQL中的任何现有表,而不仅仅是视图“”“”“”。

  db_table ='your_view'#差异指定表名称,这是您创建的视图的名称

  托管= false#默认值是ture,设置为false django将不会执行表并删除表操作

  #创建字段之间的映射

  #应该注意,必须将字段设置为主要键

  #Thothwise Django将自动创建一个ID字段作为主键,这会导致错误

  百度知道它越来越辣,所有答案。

  1当我们使用Django编程时,我们会发现我们经常需要使用列表,详细信息和修改这些操作。这些操作可以满足数据编辑的大多数要求。您可以直接提供通用模板类,例如yii2脚手架功能?您只需要指定一些必要的参数即可。所有功能都是由您自己实施的。

  2 Python语言Django框架,只提供了这样的功能,它具有许多方法,例如类视图,通用视图,简化的视图,所有方法都涉及它。我们可以将其视为Django框架的脚手架。

  3 django简化了视图的底层的本质是通过从URL传输的参数查询数据,加载模板并使用所获得的数据渲染模板(路由,视图,模板和模型的路线图)。

  4以下是Django框架提供的简化视图,可以直接使用。

  

  TemplateView -------------------渲染模板

  

  通用显示视图显示视图:

  

  

  通用编辑器视图编辑视图:

  

  Createview ---------------创建一个对象

  UpdateView ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

  Deleteview ----------------------------------------------------------------------------------------

  5个案例,路由代码

  path('',views.indexview.as_view(),name ='index'),

  查看代码

  类indexview(generic.listview):

  template_name ='polls/index.html'

  context_object_name ='最新_question_list'

  def get_queryset(self):

  返回问题。

  6个提示6-1一般视图实际上是一种视图。Django班级视图的完整体系结构仍然很大。作者只是大纲。如果您有兴趣,可以尝试在-Depth学习中搜索“ get_queryset,get_context_data,get_object和其他方法”。

  6-2在查看某些PHP背景维护中的某些程序员时,作者经常被SQL注入。实际上,只需使用addSlashes()函数来解决大多数问题。

  Django完全支持匿名会话。会话框架允许每个用户保存和检索数据。它将数据保存在服务器上并包装发送和接收cookie的操作。在cookie中,它包含会话ID,而不是数据本身。

  启用会议s

  会话由中间件实施。

  要启用会话功能,您需要完成以下步骤:

  修改Midderware_classes设置,并确定它包含'django.contrib.sessions.midderware.sessionmiddleware'。

  将'django.contrib.sessions'添加到您的installed_apps设置中,并执行manage.py syncdb以安装存储会话数据的表。

  在Django 1.0中更改:如果您不使用数据库存储会话,则可以忽略此步骤;请参阅配置会话引擎。

  

  配置会话引擎配

  Django 1.0中的新事物。

  对于默认情况,django将会话存储在数据库中(使用模型django.contrib.sessions.models.session)。尽管这很方便,但在某些情况下,该会话在其他地方会更快。因此,Django允许您允许您使用通过配置将其保存在文件系统或缓冲区中。

  使用基于文件的会话

  要使用基于文件的会话,请将Session_Engine设置为“ django.contrib.sessions.backends.file”。

  您可能还需要修改Session_File_Path的设置,以控制Django存储会话文件的位置。当默认值时,它使用tempfile.getTempdir(),通常是 /tmp。

  使用基于缓冲区的会话使用

  要保存DJANGO缓冲系统的会话,您需要将Session_Engine设置为“ django.contrib.sessions.backends.cache”。您必须确保您有缓冲区,请参阅缓冲文档以获取详细信息。

  笔记

  您只能在使用memcach作为缓冲区背景时才使用基于缓冲区的会话。由于本地内存用作缓冲区背景时,缓冲区数据的时间太短了,因此直接访问文件或数据库的速度通过缓冲区区域比文件或数据库的速度快。

  在视图中使用会话在

  打开sessionMiddleware后,每个httprequest对象(django视图函数的第一个参数)都有一个会话属性,它是字典的对象。您可以直接读取和写入。

  会话对象具有以下标准字典函数:

  __getItem __(键)

  示例:fav_color = request.session ['fav_color']

  __setitem __(键,值)

  示例:request.session ['fav_color'] ='蓝色'

  __DELITEM __(键)

  示例:del request.session ['fav_color']。

  __contains __(键)

  示例:请求中的“ fav_color”。

  获取(键,默认=无)

  示例:fav_color = request.session.get('fav_color','red')

  键()

  项目 ())

  默认设置 ()

  清除 ())

  此版本中新添加了Django 1.0:SetDefault()和Clear()的新版本。

  它还具有以下方式:

  flush()

  Django 1.0中的新事物。

  从数据库中删除当前的会话数据,重新加入会话密钥,然后将其发送到浏览器。该数据用于确保无法从用户浏览器中访问会话数据,例如调用django.contrib.auth。登出 ()。

  set_test_cookie()

  设置以检测cookie来测试浏览器的浏览器是否支持cookie。由于cookie的方式,您无法在下一个用户请求之前获得测试结果。有关详细信息,请参阅下面的设置以检测cookie。

  test_cookie_worked()

  确定用户的浏览器是否已接收了测试cookie并返回真或false。由于cookie的方式,您必须在以前的独立请求中调用set_test_cookie()。有关详细信息,请参阅下面的设置以检测cookie。

  delete_test_cookie()

  删除以检测cookie,请调用此功能以清除cookie。

  set_expiry(值)

  Django 1.0中的新事物。

  设置会话的到期时间。您可以提供以下表格的值:

  如果值是塑料的,则表示第二秒。

  如果值是DateTime或Timsedelta的对象,则会将在相应的日期或时间点到期。

  如果值为0,则在关闭浏览器时,用户的会话将到期。

  如果没有值,则会将使用全球策略来设置到期时间。

  get_expiry_age()

  Django 1.0中的新事物。

  获取此会话的此到期时间。对于会话(或浏览器关闭时到期的会话),此函数返回值与settings.session_cookie_age相同。

  get_expiry_date()

  Django 1.0中的新事物。

  获取本会话的到期时间。对于会话(或浏览器关闭时的会话过期),此功能的返回值等于设置的第二个秒数。Session_cookie_age不时。

  get_expire_at_browser_close()

  Django 1.0中的新事物。

  当浏览器关闭时,会话是否将过期,并且返回值为真或错误。

  您可以修改请求。在视图中的任何位置处于任何位置,以及可以更改多少次。

  会话对象指南S

  使用Python字符串作为请求上的字典键。

  在会话词典中,Django内部保留了以下开始行的钥匙。

  请勿涵盖请求。使用新对象进行介绍,也不要访问或修改其属性。它只能用作字典对象。

  例子?

  用户提交评估信息后,此简单视图将变量has_comment设置为true,以便用户可以防止用户多次提交评估信息:

  。

  此简单视图允许网站的“用户”登录:

  def登录(请求):m = member.objects.get(username = request.post ['username'])如果m.password == request.pos ['password']:request.session ['memble_id'd']。

  ...与上面的示例相对应,以下示例将允许用户提取:

  def logout(请求):try:del request.session ['member_id']除了keyError:通过rettpresponse(“您已登录。”)

  实际上,标准的django.contrib.auth.logout()将做更多的事情来防止因疏忽而引起的数据泄漏。它呼叫request.session.flush()函数。我们使用这些示例来演示如何操作会话对象,这不是完整的注销()实现。

  设置以检测cookie测

  为了方便起见,Django提供了一种简单的方法来检测浏览器的浏览器是否支持cookies.just在请求中呼叫request.session.session.session.session.session.session.session.session.session.session.session.session.session.session.session.session.test_cookie_worked()同时在同一请求中。

  SET_TEST_COOKIE()和TEST_COOKIE_WORKED()需要调用set_test_cookie()和test_cookie_worked()的原因。

  此外,最好在测试完成后使用delete_test_cookie()删除测试数据。

  以下是一个典型的例子:

  请启用Cookie,然后重试。“)request.session.set_test_cookie()return render_to_response('foo/login_form.html')

  在视图外使用会话在

  Django 1.0中的新事物。

  视图之外有一个用于操作会话数据的API:

  ] dateTime.dateTime(2005,8,20,13,35,0)s.save()

  如果您使用django.contrib.sessions.backends.db背景,每个会话都是普通的django模型。模型会话是在文件django/contry/conter/sessions/models.py.py.since中定义的,您可以使用它,您可以使用Django的数据库编程接口直接访问它:

  

  请注意,要获取会话字典,您需要致电get_decoded()。这是因为字典以编码方式存储:

  s.session_data'kgrwmqptj19hdxrox3vzzxjjfawqnayckkxckkxcnmumtexy2zjodi2yj ...'s.get_decoded(){'user_id':42}

  何时存储会话?

  在默认情况下,只有在修改会话时才保存Django,即在修改或删除字典中的值时:

  #会话已修改。request.session ['foo'] ='bar'#session已修改。del request.session ['foo']#session是模式。请求。宣传不是模型,因为此#request.session ['foo']而不是request.session。request.session ['foo'] ['bar'] ='baz'

  对于上面的最后一个,通过在地面上显示会话对象的修改属性,可以通知会话对象已修改:

  request.session.modify = true

  要更改此行为,您可以将session_save_every_request设置为true。如果session_save_every_request为true,则在每个独立请求之后Django保存会话。

  请注意,只有在创建或修改会话时,会话cookie才会发送。如果session_save_every_request为True,则将发送每个请求。

  同样,它的到期部分在发送cookie时会更新。

  会话和长时间会话?

  通过设置Session_expire_at_browser_close,您可以控制会话框架以使用会话或持久会话与浏览器。

  在默认情况下,session_expire_at_browser_close的值为false,这意味着会话cookie将保存在用户的浏览器中,直到session_cookie_age..如果您希望用户每次关闭浏览器后登录后登录,请使用此方法。

  如果Session_expire_at_browser_close设置为true,则Django使用与浏览器同步的cookie,也就是说,当用户关闭浏览器时,cookie将到期。如果您希望用户每次打开浏览器时登录浏览器,请使用此模型。

  Django 1.0中的新事物。

  此设置具有一个全局默认值,但是您可以通过调用request.session.set_expiry()来设置每个会话的独立值。上面的视图中的会话中说明了相关内容。

  清除会话表清

  请注意,会话数据可能会在Databa表中积累Django_session,并且Django不提供自动清除功能。它留下了定期清除会话数据的任务。

  了解此问题,并想象使用会话时用户将会发生什么。用户登录时,Django将记录添加到表Django_session.session.session.verever session数据更改后,django会更新此记录。如果用户手动退出,Django将删除它。

  Django提供了一个示例脚本,可以完成删除功能Django-admin.py清理。它从会话表中删除Expire_date的记录,但是您的应用程序可能还需要其他需求。

  设置?

  一些Django设置可以帮助您控制会话的行为:

  Session_Engine s

  Django 1.0中的新事物。

  缺陷值:django.contrib.sessions.backends.db

  在哪里控制Django来保存会话数据,法律价值是:

  'django.contrib.sessions.backends.db'

  'django.contrib.sessions.backends.file'

  'django.contrib.sessions.backends.cache'

  有关详细信息,请参阅配置会话引擎。

  session_file_path s

  Django 1.0中的新事物。

  缺陷值: /tmp /

  如果使用基于文件的会话存储,则此变量控制Django存储会话数据的目录。

  session_cookie_age?

  价值开发:1209600(两周,以秒表示)

  会话cookie的到期时间以几秒钟的方式表示

  session_cookie_domain?

  缺陷值:无

  会话cookie的域。如果要设置cross -domain cookie,则可以以“ lawrence.com”的形式设置它,否则不使用。

  session_cookie_name?

  魔鬼价值:“ sessionid'

  会话使用的cookie的名称可以根据需要设置。

  session_cookie_secure?

  价值开发:false

  对于会话cook,是否使用安全模式。如果将其设置为true,则cookie将被标记为“安全”。在这种情况下,浏览器需要确定cookie是否是由HTTPS连接发送的。

  session_expire_at_browser_close?

  价值开发:false

  用户是否将在用户关闭浏览器时是否过期。有关详细信息,请参阅浏览器的会话和持久会话。

  session_save_every_request?

  价值开发:false

  是否将会话数据保存在每个请求中。如果此项目为false,则会仅在修改后才保存会话数据,也就是说,将其字典值分配或删除。

  技术细节?

  会话字典可以接受与泡菜兼容的任何Python对象,并参考腌制模块以获取详细信息。

  会话数据存储在数据库表Django_session中。

  Django仅在需要时发送cookie。如果您不设置任何会话数据,它将不会发送cookie。

  URL中的会话IDR

  Django的会话框架完全基于cookie,并且只能基于cookie。当会话ID不像某些软件(例如PHP)一样正常工作时,它不会将会话ID放入URL中。制定此决定是周到的,该方法不仅使URL丑陋,而且会话ID也可以通过“推荐”头泄漏,从而将隐藏的安全风险带到了网站。

  它对所有线程有效吗?此变量最好放置在数据库中。

  如果是Java,可以通过将静态变量放入服务器中实现。您也可以在Django中进行测试

  全局XX_VAR,但可能会失败。最好使用数据库的字段保存它。我们通常使用表记录来保存最常用的公共变量。

  结论:以上是有关如何在文件夹查看图函数上调用Django的主要CTO注释的所有内容。我希望这对每个人都会有所帮助。如果您仍然想进一步了解此信息,请记住收集并关注此网站。