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

如何获取以前的URL(Django获取IP地址)

时间:2023-03-05 21:05:20 网络应用技术

  今天,我将与您分享Django如何获得以前的URL的了解。其中,Django还将解释IP地址。如果您可以添加您现在面临的问题,请不要忘记注意此网站。让我们现在开始!

  本文目录清单:

  1.如何获取上一页的URL 2.如何获取SQL数据库访问Python的URL。获取获取URL的方法?6,Django媒体文件URL配置方法如下:

  1.将整个URL设置为字符串:window.lcation.href

  2.设置或获取与URL关联的端口号:window.location.port

  3.设置或获取URL窗口的协议部分。Location.protocol

  4.设置或获取窗口的一部分。Location.Search在问号后面

  5.获取变量的值(拦截等待编号的一部分)

  6.设置或获取URL的协议部分:window.location.protocol

  7.在HREF属性中设置或获取“#”井背后的细分:window.location.hash

  8.设置或获取主机名和端口位置数量或URL:window.location.host

  Python

  要操作数据库,我想安装python和数据库交互式软件包mysql-python-1.2.2.2.2.2.2.2.2.2.2.2.2.5.5.5.5.exe,然后我们可以将MySQLDB软件包用于数据库操作。

  操作步骤如下:

  1.建立数据库连接

  进口

  mysqldb

  conn = mysqldb.connect(host =“ localhost”,user =“ root”,passwd =“ sa”,db =“ mytable”))

  光标= conn.cursor()

  2.执行数据库操作

  n = cursor.execute(sql,param)

  我们需要使用连接对象获得光标对象。接下来,我们将使用光标提供的方法来工作。

  这些方法包括两个类别:1。执行命令,2。接收返回值

  3.光标用于执行命令:

  callproc(self,procname,

  ARGS):用于执行存储过程,接收参数是存储过程名称和参数列表,返回值是受影响的行的数量

  执行(自我,查询,

  ARGS):执行单个SQL语句,接收参数是SQL语句本身和使用参数的参数列表,返回值是受影响的行的数量

  执行人(自我,查询,

  args):执行单个SQL语句,但重复执行参数列表中的参数,返回值是受影响的行的数量

  NextSet(SEX):移至下一个结果集

  4.光标用于接收返回值:

  fetchall(self):接收所有返回结果。

  fetchmany(self,

  尺寸=无:接收尺寸栏以返回结果线。如果大小的值大于返回的结果数,则将返回Datar.Arraysize数据。

  fetchone(self):返回结果。

  滚动(自我,价值,

  模式='相关'):将指针移至特定行。如果模式='相关'

  移动价值栏。

  5.以下代码是一个完整的示例。

  #use sql语句,此处要接收的参数由%s使用。应该注意的是,无论您要插入哪种类型的数据,占用的符号必须始终由%s使用

  sql =“插入

  进入cdinfo值(%s,%s,%s,%s,%s)“”

  #param应该是元组或清单

  param =(标题,歌手,imgurl,url,alpha)

  #,如果成功,n的值是1

  n = cursor.execute(sql,param)

  #让我们再次执行查询操作

  cursor.execute(“选择

  *来自cdinfo”)

  #我们使用fetchall的方法。这样,CD中返回的所有结果将是TPLE类型数据。这些元组形成元组元组

  cds = cursor.fetchall()

  #beagy它是元组,您可以使用这样的结果集

  打印

  CD [0] [3]

  #或直接显示,查看结果集的真实外观

  打印

  CD

  #如果您需要批量插入数据,请执行此操作

  sql =“插入

  进入cdinfo值(0,%s,%s,%s,%s,%s)“”

  #每个值的集合是一个表,整个参数集形成元组,或列表

  param =(title,singer,imgurl,url,alpha),(title2,singer2,imgurl2,url2,alpha2)))))))))))))

  #使用执行者方法批量插入数据。这确实是一个很酷的方法!

  n = cursor.executeMany(SQL,param)

  应该指出的是(或我感到奇怪)。执行插入或删除或修改操作后,您需要调用conn.commit()方法提交。

  有一个数据库。我不知道这是否是我的MySQL设置问题。

  确实,我一直留在数据库中。因为自动数已经累积,而返回的行的数量不是0。

  6.关闭数据库连接

  需要关闭指针并分别连接对象。他们有相同的名称方法

  光标。close()

  conn.close()

  Django操作数据库

  django是Python.django的绝佳网络框架。Django已连接到操作数据库的API,它们非常易于使用。我们配置了要在settings.py中连接的数据库,然后在模块,视图和URL中编写业务逻辑

  url ='管理员/操作?name = xxxpwd = xxx'上方格式,名称和pwd是html中表的ID,例如输入id.xxx表示可以固定的值,或者由js获得的输入框的值。

  流链接功能导入

  1:直接导入视图功能

  来自django.conf.urls.defaults导入 *

  从mysite.views导入hello

  urlpatterns =模式('',,

  (r'^hello/$',你好),

  (r'^time/$',时间),

  治愈

  2:在介绍软件包模块的名称和函数的功能中,而不是函数本身

  来自django.conf.urls.defaults导入 *

  从缅甸进口视图

  urlpatterns =模式('',,

  (r'^Hello/$','views.hello'),

  (r'^time/$','views.time'),

  治愈

  3:无需导入任何视图内容,写出字符串的清晰描述

  来自django.conf.urls.defaults导入 *

  urlpatterns =模式('',,

  (r'^Hello/$','mysite.views.hello'),

  (r'^time/$','mysite.views.time'),

  治愈

  4:提取公共视图前缀

  来自django.conf.urls.defaults导入 *

  urlpatterns =模式('mysite.views',

  (r'^Hello/$','Hello'),

  (r'^time/$','time'),

  治愈

  5:partterns()返回对象的添加到对象

  老的:

  来自django.conf.urls.defaults导入 *

  urlpatterns =模式('mysite.view',,

  (r'^Hello/$','Hello'),

  (r'^time/$','time'),

  (r'^other/$','mysite.othother.oth'),

  治愈

  新的:

  来自django.conf.urls.defaults导入 *

  urlpatterns =模式('mysite.view',,

  (r'^Hello/$','Hello'),

  (r'^time/$','time'),

  治愈

  urlpatterns +=模式('mysite.OthoShts',,

  (r'^other/$','其他'),

  治愈

  6:到目前为止,在所有URLCONF示例中,我们都非常简单,即

  如果您要捕获的URL零件并添加小括号,Django将将捕获的文本传递到视图函数。

  在高级用法中,您还可以使用“命名”正则表达组捕获URL并将其作为“关键字”参数传递给视图。

  在Python正则表达式中,正则表达组的语法(?pnamepatrn)是该组的名称,而模式是一种匹配模式。

  以下是使用未知组的URLCONF的示例:

  来自django.conf.urls.defaults导入 *

  从缅甸进口视图

  urlpatterns =模式('',,

  (r'^arcticles/(d {4})/$',views.year_archive),

  (r'^arcticles/(d {4})/(d {2})/$',view.moth_archive),

  治愈

  以下是相同的URLCONF,它重写了命名组:

  来自django.conf.urls.defaults导入 *

  从缅甸进口视图

  urlpatterns =模式('',,

  (r'^arcticles/(?pyeard {4})/$',veiws.year_archive),

  ;

  治愈

  如果您不带命名组,请求/Arcticle/2006/03 //将等于此功能呼叫:

  month_archive(请求,'2006','03')

  对于命名组,相同的请求就是这样的函数调用:

  month_archive(请求,年='2006',月= '03')

  可以看出,使用命名组可以使您的urlconf更清晰,减少参数顺序可能与潜在的错误混合在一起,

  您还可以对定义中的参数进行排序。

  7:查看冗余:

  #urls.py

  来自django.conf.urls.defaults导入 *

  从缅甸进口视图

  urlpatterns =模式('',,

  (r'^(foo)/$',views.foobar_view),

  (r'^(bar)/$',views.foobar_view),

  治愈

  #views.py

  来自django.shortcuts导入render_to_response

  从mysite.models导入mymodel

  def foobar_view(请求,URL):

  m_list = mymodel.objects.filter(is_new = true)

  如果url =='foo':

  template_name ='Template1.html'

  elif url =='bar':

  template_name ='Template2.html'

  return render_to_response(template_name,{'m_list':m_list})

  使用上述方法可以减少视图冗余

  8:固定参数传递到URL:

  #urls.py

  来自django.conf.urls.defaults导入 *

  从缅甸进口视图

  urlpatterns =模式('',,

  (r'^foo/$',views.foobar_view,{'template_name':'template1.html'}),

  (r'^bar/$',views.foobar_view,{'template_name':'template2.html'}),

  治愈

  #views.py

  来自django.shortcuts导入render_to_response

  从mysite.models导入mymodel

  def foobar_view(请求,template_name):

  m_list = mymodel.objects.filter(is_new = true)

  return render_to_response(template_name,{'m_list':m_list})

  一些URL参数的详细说明:

  /mydata/jan/01/

  /mydata/jan/02/

  /mydata/jan/03/

  以上是我们可以以不同方式实施的三个URL

  1 :( r'^mydata/(/w {3})/(/d/d)',views.mydata)mydata(请求,'jan','01')

  2:(r'^mydata/(?pmonth/w {3})/(?pday/d/d)',view.mydata)mydata(请求,月='jan',day',day ='01')

  3 :( r'^mydata/birthday/$',views.mydata,{月:'jan',day:'01'})mydata(请求,月='jan',day = '01')

  9:包括导入:

  来自django.conf.urls.defaults导入 *

  urlpatterns =模式('',,

  (r'^weblog/',包括('mysite.blog.urls'),

  (r'^photos/',包括('mysite.photos.urls'),

  (r'^of/$','mysite.views.about'),

  治愈

  10:示例:

  验证用户是否已登录:

  以下是三个观点

  def my_view1(请求):

  如果未request.user.is_authenticated():

  返回httpresponseredirect('/accounts/login/')

  #...

  返回render_to_response('template1.html')

  def my_view2(请求):

  如果未request.user.is_authenticated():

  返回httpresponseredirect('/accounts/login/')

  #...

  返回render_to_response('template2.html')

  def my_view3(请求):

  如果未request.user.is_authenticated():

  返回httpresponseredirect('/accounts/login/')

  #...

  返回render_to_response('template3.html')

  以下是视图上的包装:

  deficuires_login(查看):

  def new_view(请求, *args,** kwargs):

  如果未request.user.is_authenticatienatienationed():#如果用户未登录,请跳到登录接口

  返回httpresponseredirect('/accounts/login/')

  返回视图(请求, *args,** kwargs)#otherwise

  返回new_view #turn to new_view值:登录视图或查看视图

  以下是URL配置:

  来自django.conf.urls.defaults导入 *

  来自mySite.views import oneques_login,my_view1,my_view2,my_view3

  urlpatterns =模式('',,

  (r'^view1/$',quirenes_login(my_view1)),

  (r'^view2/$',quirenes_login(my_view2)),

  (r'^view3/$',quirenes_login(my_view3)),

  治愈

  用相同的方法,当帖子到达时,http_referr必须为

  当您单击“访问get中的msg_request方法”时,您可以将http_referr放在隐藏的类型表单中。

  相关代码如下:

  def msg_request(请求):

  如果request.method =='post':

  #此时处理表格提交的OBJ_URL

  obj_url = request.post.get(“ obj_url”,“”)

  form = msgrequestform(request.post)

  如果form.is_valid():

  wbmessage = wb(wbtital = form.clenet_data ['wbtitle'],

  wbreason = form.clenet_data ['wbreason'],

  wbaddress = obj_url

  治愈

  wbmessage.save()

  Em

  # 此时

  obj_url = request.meta.get('http_referr',“”/“)

  返回 {

  “ obj_url”:obj_url,

  Em

  Em

  }

  然后将OBJ_URL渲染到表单中。

  输入type =“隐藏” name =“ obj_url” value =“ {{obj_url}}” / / /

  在Django中,您通常需要配置图片,视频和其他格式文件。在配置过程中,它更为复杂。这是一个记录:

  将以下目录添加到文件末尾以存储上传的文件

  在模型中,图像字段是%y代表年份的年份,%m表示一个月。上传文件时,表示将上传到图像目录和当前限制目录的文件夹。

  image = models.imagefield(upload_to =“ image/%y/%m”,空白= true)

  其中,SRC中的{{Media_url}}将在模板中渲染,以用作 /媒体 /

  如果要在模板中使用{{Media_url}},请在“ template”的“ context_processis”选项中添加django.template.contexors.media。

  通过上述步骤,结果基本上可以正常呈现在前端,但是您需要在图片中添加一个URL才能正常显示。

  第一个行为介绍了静态文件的服务器,第二个行为是在配置文件中的介质_root中介绍的

  加入URL:

  Django如何获取以前的URL和DJANGO获取IP地址的介绍已经结束。我想知道您是否找到所需的信息?如果您想进一步了解此信息,请记住要收集对该网站的关注。