参考了
https://www.cnblogs.com/kangoroo/p/7495880.html
https://www.cnblogs.com/gcgc/p/11320636.html
1、关键命令
输入命令 python manage.py inspectdb
这个命令会显示django在mysql中的所有表格的models的信息
2、设计一个简单的数据库
CREATE TABLE chenbook(
id int AUTO_INCREMENT PRIMARY KEY,
title char(20) NOT NULL COMMENT '书名',
author char(20) NOT NULL COMMENT '作者',
publicationyear char(10) NOT NULL COMMENT '出版年份',
press char(40) NOT NULL COMMENT '出版社'
);
3、用常规工具在mysql中添加该表
4、顺便添加些数据
5、敲入读取数据库命令
python manage.py inspectdb
得到一堆的类
这里可以看到chenbook是我们在数据库中刚才创建的
6、创建我们所要的表格,也就是反向生成
在HelloWorld中,创建文件chenbookmodels.py
from django.db import models
class Chenbook(models.Model):
title = models.CharField(max_length=20)
author = models.CharField(max_length=20)
publicationyear = models.CharField(max_length=10)
press = models.CharField(max_length=40)
class Meta:
managed = False
db_table = 'chenbook'
7.切记切记在settings.py中添加路径,否则报错,对应选中的HelloWorld目录
3、修改读取model的地方,也就是修改views.py如下,注意序列化,可参考我下面的地址
https://www.cnblogs.com/gcgc/p/11320636.html
from django.http import HttpResponse
from .chenbookmodels import Chenbook
#方法二
# django自带的模型转字典方法
# 缺点就是图片之类的文件无法转换
# 返回的是字典类型,所以需要json转换成json格式字符串
from django.forms.models import model_to_dict
import json
# 方法三重要!!!--导入django自带的序列化器
from django.core import serializers
def hello(request):
chenresult = Chenbook.objects.all()
# list=Chenbook.objects.filter(id=1)
# print(list)
# chenresult = Chenbook.objects.get(id=1)
# return HttpResponse(chenresult)
# return HttpResponse("Hello world ! ")
# 方法二
data = []
for i in chenresult:
data.append(model_to_dict(i))
return HttpResponse(json.dumps(data), content_type='application/json')
# 方法三
# 导入django自带的序列化器
# # 返回的是json字符串,不需要再用json转换一次了
# data = serializers.serialize('json', chenresult)
# return HttpResponse(data, content_type='application/json')
4、跑一下,网页里看一下