django使用sqlite3统计前台站点访问数量示例
作者:郝同学1208
这篇文章主要为大家介绍了django使用sqlite3统计前台站点访问数量示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
后端
Django框架自带sqlite3数据库,通过models.py文件内定义数据库类用来存储访问信息
from django.db import models import time # 网站总访问次数 class VisitNumber(models.Model): date = models.IntegerField(verbose_name='网站访问时间', default=int(time.time())) class Meta: verbose_name = '网站访问时间' verbose_name_plural = verbose_name def __str__(self): return str(self.count)
新增接口
用以向数据库中新增一条数据,前台页面渲染过程中调用一次该接口
def set_visit_count(request): cur_time = int(time.time()) count_nums = VisitNumber() count_nums.date = cur_time count_nums.save() return JsonResponse({"status": True, "data": cur_time})
用以从数据库获取访问信息
conn = sqlite3.connect("/root/Django/db.sqlite3") cursor = conn.cursor() data = cursor.execute(f"select * from DeployProductRepair_visitnumber where date > {start_time} and date < {end_time};") conn.commit() cur_time_visit = len(data.fetchall()) cursor.close() conn.close() return cur_time_visit
因为models.py文件发生改变,所以需要在环境上重新生成数据库表,执行以下两行命令,之后启动python服务
python3 /root/Django/manage.py makemigrations python3 /root/Django/manage.py migrate nohup python3 /root/Django/manage.py runserver 10.243.22.192:8080
前端
src/api/index.ts文件中增加一个请求
const setVisitCount = (params) => { return request.get("/setVisitCount/", params) as Promise<{ status: boolean; data: Array<any>; }>; }
在总入口文件app.tsx中增加调用请求
import { setVisitCount } from "./api/index.ts"; //并不需要对返回值做处理,因此可以不必使用await同步 const visitCount = setVisitCount(null);
在需要显示数据的页面调用获取请求并渲染即可
const { data, count } = await getUseData({ type: this.state.type }); this.setState({ visitCount: count, });
以上就是django使用sqlite3统计前台站点访问数量示例的详细内容,更多关于django sqlite3统计站点访问量的资料请关注脚本之家其它相关文章!