在 Django 应用程序中使用 IP 地址查看计数器
View counter using IP address in Django app
我正在开发 Django 应用程序,我想知道有多少人使用它,所以我决定在页面上添加查看计数器。我创建了视图计数器(观看了一些教程)但它不起作用。不知道哪里出了问题。这是代码:
models.py:
class User(models.Model):
user=models.TextField(default=None)
def __str__(self):
return self-user
admin.py:
admin.site.register(User)
views.py 有问题。它说“return 只能在函数内使用”。我知道,但我该怎么做才能使这项工作成功?
def get_ip(request):
address=request.META.get('HTTP_X_FORWARDED_FOR')
if address:
ip=address.split(',')[-1].strip()
else:
ip=request.META.get('REMOTE_ADDR')
return ip
ip=get_ip(request)
u=User(user=ip)
print(ip)
result=User.objects.filter(Q(user__icontains=ip))
if len(result)==1:
print("user exist")
elif len(result)>1:
print("user exist more...")
else:
u.save()
print("user is unique")
count=User.objects.all().count()
print("total user is", count)
return render(request, 'index.html', {'count':count})
index.html:
{% load static %}
<html>
<head>
<title>Hello World Django App</title>
</head>
<h1>Hello World!</h1>
<div>Total visits: {{count}} </div>
</html>
你的错误很明显。您有两个 return 语句在单个函数中不是条件语句。
你的错误是:
return ip
删除那个。
我注意到,您的意思是创建两个不同的函数,因为您错误地将当前函数调用到 return 一个 ip。
你应该创建一个视图函数,然后在其中调用 get_ip。
删除 ip=get_ip 下的所有内容。
将它们放在获取视图函数中。
新函数是您应该放入 urls 文件的内容
我正在开发 Django 应用程序,我想知道有多少人使用它,所以我决定在页面上添加查看计数器。我创建了视图计数器(观看了一些教程)但它不起作用。不知道哪里出了问题。这是代码:
models.py:
class User(models.Model):
user=models.TextField(default=None)
def __str__(self):
return self-user
admin.py:
admin.site.register(User)
views.py 有问题。它说“return 只能在函数内使用”。我知道,但我该怎么做才能使这项工作成功?
def get_ip(request):
address=request.META.get('HTTP_X_FORWARDED_FOR')
if address:
ip=address.split(',')[-1].strip()
else:
ip=request.META.get('REMOTE_ADDR')
return ip
ip=get_ip(request)
u=User(user=ip)
print(ip)
result=User.objects.filter(Q(user__icontains=ip))
if len(result)==1:
print("user exist")
elif len(result)>1:
print("user exist more...")
else:
u.save()
print("user is unique")
count=User.objects.all().count()
print("total user is", count)
return render(request, 'index.html', {'count':count})
index.html:
{% load static %}
<html>
<head>
<title>Hello World Django App</title>
</head>
<h1>Hello World!</h1>
<div>Total visits: {{count}} </div>
</html>
你的错误很明显。您有两个 return 语句在单个函数中不是条件语句。
你的错误是:
return ip
删除那个。
我注意到,您的意思是创建两个不同的函数,因为您错误地将当前函数调用到 return 一个 ip。
你应该创建一个视图函数,然后在其中调用 get_ip。 删除 ip=get_ip 下的所有内容。 将它们放在获取视图函数中。
新函数是您应该放入 urls 文件的内容