Python学习笔记之Django创建第一个数据库模型的方法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Python学习笔记之Django创建第⼀个数据库模型的⽅法Django⾥⾯集成了SQLite的数据库,对于初期研究来说,可以⽤这个学习。

第⼀步,创建数据库就涉及到建表等⼀系列的⼯作,在此之前,要先在cmd执⾏⼀个命令:
python manage.py migrate
这个命令就看成⼀个打包安装的命令,它会根据mysite/settings.py的配置安装⼀系列必要的数据库表
第⼆步,我们要建⽴⼀个Model层,修改demo/model.py:
from django.db import models
classQuestion(models.Model):
question_text = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')
classChoice(models.Model):
question = models.ForeignKey(Question, on_delete=models.CASCADE)
choice_text = models.CharField(max_length=200)
votes = models.IntegerField(default=0)
这个Model的内容包括创建表(对象)、确定变量(字段)的类型,以及外键⽅⾯的信息
第三步,要激活Model,那么现在helloworld/setting.py中修改:
INSTALLED_APPS =[
'demo.apps.DemoConfig',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
主要是加了第⼀⾏的内容,这个在demo/apps下有的。

⽬的是让Django知道有demo这个app。

然后就在cmd下⾯运⾏:
python manage.py makemigrations demo
可以看到在demo/migrations/0001_initial.py下⾯⽣成了很多代码
继续run这段代码,就完成了建表⼯作:
python manage.py sqlmigrate demo 0001
再跑⼀下migrate命令,把这些model创建到数据库表中
python manage.py migrate
第四步,也是⽐较好玩的了,就是要进⼊到python django的shell中,执⾏这个命令:
python manage.py shell
在这个⾥⾯,就可以通过命令⾏操作数据库了
先引⼊刚才创建好的model:
from demo.models importQuestion,Choice
这个命令,打印出Question所有的对象:
Question.objects.all()
然后创建⼀个Question的对象(或数据):
from django.utils import timezone
q =Question(question_text="What's new?", pub_date=timezone.now())
q.save()
q.id
q.question_text
q.pub_date
q.question_text = "What's up?"
q.save()
Question.objects.all()
第五步,然后polls/models.py中添加以下代码:
from django.db import models
from django.utils.encoding import python_2_unicode_compatible
@python_2_unicode_compatible# only if you need to support Python 2
classQuestion(models.Model):
# ...
def __str__(self):
return self.question_text
@python_2_unicode_compatible# only if you need to support Python 2
classChoice(models.Model):
# ...
def __str__(self):
return self.choice_text
import datetime
from django.db import models
from django.utils import timezone
classQuestion(models.Model):
# ...
def was_published_recently(self):
return self.pub_date >= timezone.now()- datetime.timedelta(days=1)
在这⾥__str__()是⼀个⾮常重要的⽅法,⼤概可以看成java⾥pojo对象的⼀个toString()⽅法
接下来,就可以在数据库中进⾏很多操作,在shell中输⼊以下的代码,就可以执⾏对数据库的增删查改:from polls.models importQuestion,Choice
Question.objects.all()
Question.objects.filter(id=1)
Question.objects.filter(question_text__startswith='What')
from django.utils import timezone
current_year = timezone.now().year
Question.objects.get(pub_date__year=current_year)
Question.objects.get(id=2)
Question.objects.get(pk=1)
q =Question.objects.get(pk=1)
q.was_published_recently()
q =Question.objects.get(pk=1)
q.choice_set.all()
q.choice_set.create(choice_text='Not much', votes=0)
q.choice_set.create(choice_text='The sky', votes=0)
c = q.choice_set.create(choice_text='Just hacking again', votes=0)
c.question
q.choice_set.all()
q.choice_set.count()
Choice.objects.filter(question__pub_date__year=current_year)
c = q.choice_set.filter(choice_text__startswith='Just hacking')
c.delete()
操作django Admin
Django的管理端可以管理站点、管理账户权限等等。

在cmd运⾏以下的脚本创建账户:
python manage.py createsuperuser
Username: admin
Email address: admin@
Password:**********
Password(again):*********
Superuser created successfully.
启动server:
python manage.py runserver 8081
访问链接地址:
登录界⾯:
管理界⾯:
在demo/admin.py中添加代码注册对象:
from django.contrib import admin
from.models importQuestion
admin.site.register(Question)
刷新后即增加这个对象:
点击Questions进去:
这样,就可以在图形化的界⾯中执⾏增删查改了。

以上这篇Python学习笔记之Django创建第⼀个数据库模型的⽅法就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。

相关文档
最新文档