首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >单击Django按钮更新屏幕

单击Django按钮更新屏幕
EN

Stack Overflow用户
提问于 2022-07-28 00:22:40
回答 1查看 49关注 0票数 -1

假设我有一个屏幕看起来是这样的:

代码语言:javascript
运行
复制
Times clicked: 0
[button]

每次我点击这个按钮,点击的时间就会增加1。我该怎么做呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-28 03:45:22

您已经用django和django表单标记了这个问题,所以我将忽略基于javascript的解决方案,并假设您希望这个问题是持久和通用的(因为每个用户都看到相同的数字)。

假设一个名为count_things的应用程序

从count/Models.py开始

代码语言:javascript
运行
复制
from django.db import models

class Counter(models.Model):
    count_num = models.PositiveSmallIntegerField(default=0)
    name= models.CharField(max_length=255)

这是将在数据库中实例化以存储单击次数的模型。

运行python manage.py makemigrations,然后运行python manage.py migrate,以便使用该模型的表更新数据库

数数事物/视图

代码语言:javascript
运行
复制
from django.http import HttpResponse
from django.shortcuts import render
def view_counter(request):
    counter = Counter.objects.get_or_create(name="page_counter")
     
    if request.method == "POST":
        counter.count_num = counter.count_num + 1
        counter.save()
    return render(request, "count_things/count_clicker.html" {"counter":counter})

这是在提交表单时处理将一个添加到计数器的视图。我们并不过分担心表单的有效性,因为我们的表单中没有字段。

然后在你的count_things/templates/count_things/count_clicker.html

代码语言:javascript
运行
复制
 <html>
 <body>    
 <form method="POST">
      {% csrf_token %}
      <p>times clicked: {{counter.count_num}}</p>
     <input type="submit" value = "Add one to me!">
 </form>
 </body>
 </html>   

这就是形式本身。它只是表单包装器中的提交按钮。

数数事物/urls.py

代码语言:javascript
运行
复制
from django.urls import path
from . import views

urlpatterns = [
    path('', views.view_counter, name='view counter'),
]

urls.py

代码语言:javascript
运行
复制
from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include("count_things.urls"))
]

添加适合的urls。这里应该是我们网站的第一页,没有文件名或文件夹名,例如,http://127.0.0.1:80000

python manage.py runserver启动服务器,然后访问服务器url

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73145923

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档