Django下的模型是一个个的类,执行迁移操作时会根据数据库配置自动生成/修改相应的数据表,无需手工建表/修改表,也无需关心所用的是哪种数据库,这些都是系统自动完成的,而且会记录下每一次的结构变动。
步骤。
1. 新建一个APP
python manage.py startapp test
2. 编写模型
在新生成的test
目录下的models.py
中编写模型类。
示例
from django.db import models
# Create your models here.
# 专栏
class Space(models.Model):
domain = models.CharField(max_length=60)
url = models.CharField(max_length=120)
title = models.CharField(max_length=60)
description = models.CharField(max_length=255, blank=True)
posts = models.IntegerField()
3. 迁移
迁移分两步
python manage.py makemigrations
python manage.py migrate
4. 实例化
首先引入模型
首先引入模型
from test.models import Space
简单的插入一条记录
def test(request):
space1 = Space(domain='11',url = 'http://11', title='my11', description='desc11', posts= 12);
space1.save()
return HttpResponse('')
5. QuerySet
首先配置test/urls.py
path('space/<str:domain>/', views.space, name='space'),
url(r'space_search/$', views.space_search, name='space_search')
获取单条记录
def space(request, domain=''):
if domain=='':
return HttpResponse('parameter error')
print(f"domain:{domain}")
row = Space.objects.get(domain=domain)
res = {
'code' : 1,
'data' : {
'domain' : row.domain,
'url' : row.url,
'title' : row.title,
'description' : row.description,
'posts' : row.posts,
}
}
return HttpResponse(json.dumps(res), content_type="application/json")
获取多条记录
def space_search(request):
domain = ''
if request.method=='GET':
if request.GET:
domain = request.GET.get('domain', default='')
if request.method=='POST':
if request.POST:
domain = request.POST.get('domain', default='')
print(f"domain:{domain}")
if domain == '':
resp = {'code': 0, 'msg' : "请求参数不能为空"}
return HttpResponse(json.dumps(resp), content_type="application/json")
rows = Space.objects.filter(domain__icontains=domain)
count = rows.count()
data = []
for row in rows:
data.append({
'domain' : row.domain,
'url' : row.url,
'title' : row.title,
'description' : row.description,
'posts' : row.posts,
})
res = {'code' : 1, 'count' : count, 'data' : data}
return HttpResponse(json.dumps(res), content_type="application/json")
参考