/', views.stu_detail1),
path('stu_detail2/', views.stu_detail2)
views.py:
import simplejson as json
from django.http import HttpResponse
from django.shortcuts import render
from django_demo.models import CourseModel
def runoob(request):
data = "这是一个测试。。。。。"
return HttpResponse(data)
def stu_detail(request, student_id):
stu_id = "您输入的id为:{}".format(student_id)
return HttpResponse(stu_id)
# 根据传入的学生id查询数据 法一 http://127.0.0.1:8000/stu_detail1/372/
def stu_detail1(request, student_id):
sub = CourseModel.objects.get(id=student_id)
data = {"id": sub.id, "课程id": sub.cour_id, "课程": sub.course, "成绩": sub.grade}
res = {'code': 1, 'message': '成功', 'data': data}
# return json.dumps(res, ensure_ascii=False, indent=4)
return HttpResponse(json.dumps(res, ensure_ascii=False, indent=4))
# 根据传入的学生id查询数据 法二 http://127.0.0.1:8000/stu_detail2/?id=373
def stu_detail2(request):
student_id = request.GET.get("id")
sub = CourseModel.objects.get(id=student_id)
data = {"id": sub.id, "课程id": sub.cour_id, "课程": sub.course, "成绩": sub.grade}
res = {'code': 1, 'message': '成功', 'data': data}
# return json.dumps(res, ensure_ascii=False, indent=4)
return HttpResponse(json.dumps(res, ensure_ascii=False, indent=4))
法二修改:(没有加入日志信息)
# 根据传入的学生id查询数据 法二
def stu_detail2(request):
student_id = request.GET.get("id")
sub = CourseModel.objects.get(id=student_id)
data = {"id": sub.id, "课程id": sub.cour_id, "课程": sub.course, "成绩": sub.grade}
res = {'code': 1, 'message': '成功', 'data': data}
except Exception as e:
res = {'code': 0, 'message': '数据获取失败'}
return HttpResponse(json.dumps(res, ensure_ascii=False, indent=4))
法二修改:加入日志信息
# 根据传入的学生id查询数据 法二
def stu_detail2(request):
student_id = request.GET.get("id")
sub = CourseModel.objects.get(id=student_id)
data = {"id": sub.id, "课程id": sub.cour_id, "课程": sub.course, "成绩": sub.grade}
res = {'code': 1, 'message': '数据获取成功', 'data': data}
except Exception as e:
error_info = '数据获取失败:{}'.format(e)
logger.error(error_info)
res = {'code': 0, 'message': error_info}
return HttpResponse(json.dumps(res, ensure_ascii=False, indent=4))
日志配置:(log为新建的空文件夹)
对应的结果:
urls.py:from django.contrib import adminfrom django.urls import pathfrom . import views, test2dburlpatterns = [ path('admin/', admin.site.urls), path('runoob/', views.runoob), path('stu_detail/<student_id>/', views.stu_detail),
Django
处理json也是一把好手,有时候在工作中各个部门都会提供自己的相关
接口
,但是信息也只是单方的信息,这时候需要运维将各个部门的信息进行集成,统一出一个
查询
接口
或页面,方便其他部门同事使用,接下来就介绍一下
Django
如果操作json。
首先介绍一下通过url获取json的方法:
import urllib2
我们的需求是做一个集成的信息
查询
系统,包括
简单
的IP信息
查询
(省份运营商等),以及设备信息(如果是登记在资产管理库中的),还有IP归属(是否是客户源站IP),以及是否为其他部门的存储IP,另外还有错误日志具体信息
查询
,等等功能,这些功能信息的提供分属于不同的部门,有的是给
查找是
数据
库操作中一个非常重要的技术。
查询
一般就是使用filter、exclude以及get三个方法来
实现
。我们可以在调用这些方法的时候传递不同的参数来
实现
查询
需求。在ORM层面,这些
查询
条件都是使用field+__+condition的方式来使用的。以下将那些常用的
查询
条件来一一解释。
准备工作:
新建一个项目,配置settings文件连接至mysql
数据
库,
新建一个front的app,将ap...
一、第九天作业
在某页面点击超链接,获取
数据
库中所有学生的信息, 并显示在另一个页面,在1分钟之内,即使添加新的学生信息,点击超链接仍然显示之前的学生信息,直到1分钟之后,点击超链接才显示最新信息。
1.1 代码演示
1、models
from
django
.db import models
class Student(models.Model):
name = mode...
get
查询
单一结果,模型类实例,如果不存在会抛出模型类 DoesNotExist 异常
filter 过滤出多个结果,返回 QuerySet 类型对象
exclude 排除掉符合条件剩下的结果,返回 QuerySet 类型对象
all
查询
所有结果,返回 QuerySet 类型对象
count
查询
结果数量
表达语法如下:
属性名称
一个公司是由公司中的各部部门来组成的,每一个部门拥有特定的职能,部门与部门之间通过相互的配合来完成让公司运转起来。
一个软件框架是由其中各个软件模块组成的,每一个模块都有特定的功能,模块与模块之间通过相互配合来完成软件的开发。
软件框架是针对某一类软件设计问题而产生的。
MVC框架
2.1 MVC简介
MVC最初是由施乐公司旗下的帕罗奥多研究中心中的一位研究人员给 ...
Object.objects.get(
id
=1)
Object.objects.get(pk=1)
pk代表主键(primary key),pk更加独立于实际的主键字段,即您不必关心主键字段是否被称为
id
或object_
id
或任何。
如果您具有不同主键字段的模型,它还可以提高您的一致性。
转载:https://cod...
now = datetime.now()
start_month = datetime(now.year, now.month, 1)
end_month = datetime(now.year, now.month + 1, 1)
queryset = MyModel.objects.filter(Q(date__gte=start_month) & Q(date__lt=end_month))
其中,`MyModel` 是您的模型类,`date` 是您的日期字段。这段代码会
查询
出当前月份的
数据
。希望能对您有所帮助。