Django 模板与表单

加载python shell

• 使用如下命令来调用Python shell:

(django_env) [root@localhost mysite]# python manage.py shell

• 使用上述命令而不是简单地键入“python”进入python环境

• 因为manage.py 设置了 DJANGO_SETTINGS_MODULE 环境变量,该环境变量告诉Django导入mysite/settings.py文件的路径

 

 

导入模型

• 导入前面编写的模型

>>> from polls.models import Question, Choice

• 查看所有的问题

>>> Question.objects.all()

<QuerySet []>

• 因为还没有创建任何问题,所以返回的是一个空查询集

 

创建Question

• Question模型中需要时间,可以使用django工具

>>> from django.utils import timezone

• 创建问题

>>> q = Question(question_text="你希望进入哪个公司工作?", pub_date=timezone.now())

>>> q.save()

• 保存这个对象到数据库中。 必须显示地调用save()

 

访问Question模型

• 一旦创建好了对象,就可以对其进行访问了

>>> q.id

1

>>> q.question_text

'你希望进入哪个公司工作?'

>>> q.pub_date

datetime.datetime(2018, 5, 18, 14, 50, 11, 282269, tzinfo=<UTC>)

 

修改Question对象

• 通过改变属性来改变字段的值,然后调用save()

>>> q.question_text = "你期待哪个公司给你发offer?"

>>> q.save()

• 查询结果

>>> Question.objects.all()

<QuerySet [<Question: Question object>]>

 

 

提供友好实例名称

 

• <Question object> 完全是这个对象无意义的表示。

接下来修复这个问题:修改polls/models.py

from django.db import models

class Question(models.Model):
        question_text = models.CharField(max_length=200)
        pub_date = models.DateTimeField('date published')
        def __str__(self):
                return self.question_text
class Choice(models.Model):
        question = models.ForeignKey(Question, on_delete=models.CASCADE)
        choice_text = models.CharField(max_length=200)
        votes = models.IntegerField(default=0)
        def __str__(self):
                return self.choice_text

 

• 修改完毕,重新加载

(django_env) [root@localhost mysite]# python manage.py shell

>>> from polls.models import Question, Choice

>>> Question.objects.all()

<QuerySet [<Question: 你期待哪个公司给你发offer?>]>

 

自定义方法

• 模型虽然与数据库具有映射关系,但是它也可以像普通的类一样进行方法的创建

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值