今天开始建立App中的第一个Model,命名为Tutorial. Model的定义在main文件夹下的models.py中通过类进行,我们希望Tutorial这个model包含三个属性:标题、内容和发布日期,因此修改models.py的内容如下:
from django.db import models # Create your models here. class Tutorial(models.Model): tutorial_title = models.CharField(max_length=200) tutorial_content = models.TextField() tutorial_published = models.DateTimeField('date published') def __str__(self): return self.tutorial_title
对与title我们使用了CharField,对于content我们使用了TextField,他们的区别在于CharField一般用于有长度限制的内容,TextFeild一般没有长度限制。详细解释可参考帮助文档。
这里我们写完了Tutorial这个model,接下来我们需要将这个model安装到我们的app中,这一步在settings.py中进行设置,我们在INSTALLED_APPS中添加'main.apps.MainConfig',那么MainConfig在哪里呢?我们打开main文件夹下的apps.py即可看到MainConfig这个类,settings.py中的INSTALLED_APPS添加后内容如下:
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'main.apps.MainConfig', ]
接下来我们需要进行数据迁移(migration),每次对model做出改变都需要进行一次迁移,迁移包括两个步骤makemigrations和migrate。在命令行进行如下操作:
python manage.py makemigrations
执行完后,在执行下句: python manage.py migrate
然后再mysite/main/migrations这个文件夹下生成了一个文件
0001_initial.py,可以打开查看其内容。
接下来我们可以通过sql语句来建立一个Tutoria模型,在命令行输入:
python manage.py shell
然后输入:
from django.utils import timezone new_tutorial = Tutorial(tutorial_title='Title1',tutorial_content='This is some text', tutorial_published=timezone.now()) new_tutorial.save() for t in Tutorial.objects.all(): ... print(t.tutorial_title)
即可看到输出Title1。另外也可通过数据库查看软件来查看具体内容,django默认使用的数据库是sqlite,在mysite这个文件夹下可以看到一个文件db.sqlite3。通过安装Navicat Premium可以查看各种数据库,如下图为刚刚创建的内容:
之后添加的内容都可以在此清楚的查看,非常方便。
参考链接:
[1] https://pythonprogramming.net/models-django-tutorial/
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Anaconda+django写出第一个web app(二) - Python技术站