前戏

我们来完成一个图书管理系统的增删改查

表结构设计

1. 出版社
  id   name
2. 作者
  id  name
3. 书
  id  title  出版社_id
4. 作者_书_关系表
  id  书_id  作者_id

创建表

现在有个需求,当我们访问http://127.0.0.1:8080/press_list/这个网址时,django给我们返回所有的出版社名称,我们可以在models里创建一个press的类来生成数据表

class Press(models.Model):
    id = models.AutoField(primary_key=True)  # id主键
    name = models.CharField(max_length=32)  # 出版社名称

然后再Terminal里执行下面的两句代码:

python manage.py makemigrations
python manage.py migrate

然后我们去往数据库里手动插入几条数据,添加好了之后我们该干什么了呢?想一想我上篇文章写的和上上篇文章写的,我们在浏览器访问上面的url是不是django先去url.py里去找这个路径,那我们就去url.py里添加一个

url(r'^press_list/', views.press_list),

添加好了,这个函数是不是还没有,那在去views里添加一个press_list的函数,记得导入这个类

def press_list(request):
    ret = Press.objects.all()  # 查询所有的出版社
    print(ret)
    return HttpResponse('ok')

结果

<QuerySet [<Press: Press object>, <Press: Press object>, <Press: Press object>]>

打印出来的是一个对象,大家在学面向对象的时候记不记得有个魔术方法__str__,通常用法是把对象的值打印出来,我们在去Press类里添加下面的代码

# __str__ 如果一个类中定义了__str__方法,那么在打印 对象 时,默认输出该方法的返回值。

class Foo(object):

    def __str__(self):
        return 'zouzou'

    def eat(self):
        print('we are eating...')

obj = Foo()
print(obj)

结果:zouzou
不会__str__方法的看这里

相关文章:

  • 2022-03-06
  • 2021-12-01
  • 2022-12-23
  • 2022-12-23
  • 2019-10-07
  • 2022-01-10
  • 2022-12-23
  • 2021-10-31
猜你喜欢
  • 2021-10-26
  • 2021-12-22
  • 2022-12-23
  • 2021-11-13
  • 2021-11-14
  • 2021-05-23
相关资源
相似解决方案