python编程:从入门到实践学习笔记Django入门(一)

创建应用程序

django项目由一系列应用程序组成,他们协同工作,让项目称谓一个整体。首先我们执行命令python manage.py startapp learning_logs

《python编程:从入门到实践学习笔记Django入门(一)》
《python编程:从入门到实践学习笔记Django入门(一)》

定义模型
打开刚刚我们创建的文件夹,并修改models.py:

from django.db import models

class Topic(models.Model):
    text = models.CharField(max_length=200)
    date_added = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.text

我们为模型创建了一个名为Topic的类,他继承了Model——django中一个定义模型基本功能的类。Topic类只有两个属性:textdate_added
text是一个CharField——由字符或文本组成的数据,可存储少量文本。传入参数**max_length**为文本最大长度。
date_added是一个DateField——记录日期和时间的数据。传入的实参auto_add_now=True告诉django每当用户新建主题时,将这个属性自动设置为当前日期和时间。

激活模型
打开learning_log中的setting.py并添加

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',    
    'django.contrib.sessions',    
    'django.contrib.messages',    
    'django.contrib.staticfiles',
        
    'learning_logs', #<-here
]

这是一个元组,包含了django项目中的所有应用程序。接着执行python manage.py makemigrations learning_logs让django确定如何修改数据库。最后应用迁移,执行python manage.py migrate

《python编程:从入门到实践学习笔记Django入门(一)》
《python编程:从入门到实践学习笔记Django入门(一)》

Django管理网站
1.创建超级用户,执行命令python manage.py createsuperuser

《python编程:从入门到实践学习笔记Django入门(一)》
《python编程:从入门到实践学习笔记Django入门(一)》

2.向管理网站注册模型,打开 learning_logs下的admin.py,并修改为:

from django.contrib import admin
from learning_logs.models 
import Topic
admin.site.register(Topic)

这写代码导入了我们要注册的模型Topic,接着使用admin.site.register(Topic)让django通过管理网站管理我们的模型。
接着运行服务器,访问http://127.0.0.1:8000/admin并使用着急用户帐号密码登录。

《python编程:从入门到实践学习笔记Django入门(一)》
《python编程:从入门到实践学习笔记Django入门(一)》

3.添加主题,点击Topic之后进入主题网页,此时可以通过点击add进行主题的添加,添加完成之后点击save进行保存。

定义模型Entry

learning_logs\models.py
from django.db import models

class Topic(models.Model):
    text = models.CharField(max_length=200)
    date_added = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.text
    
class Entry(models.Model):
    topic = models.ForeignKey(Topic)
    text = models.TextField()
    date_added = models.DateTimeField(auto_now_add=True)
    class Meta:
        verbose_name_plural = 'entries'

    def __str__(self):
        return self.text[:50] + "..."

ForeignKey是数据库的外键,引用数据库中的另一个记录。Entry类中的Meta类用于存储管理模型的额外信息,这里设置了一个特殊属性,让django在需要时使用 Entries 来表示多个条目。

迁移模型Entry
由于我们添加了一个新模型,因此需要再次迁移数据库。执行命令python manage.py makemigrations learning_logs以及python manage.py migrate.

《python编程:从入门到实践学习笔记Django入门(一)》
《python编程:从入门到实践学习笔记Django入门(一)》

向管理网站注册Entry
修改如下文件

learning_logs\admin.pyfrom django.contrib import adminfrom learning_logs.models import Topic, Entry

admin.site.register(Topic)
admin.site.register(Entry)

返回管理网站可以发现多了一个板块

《python编程:从入门到实践学习笔记Django入门(一)》
《python编程:从入门到实践学习笔记Django入门(一)》

接着点击新板块的add添加以下主题和讨论,并点击保存给我们之后测试使用。
国际象棋:The opening is the first part of the game, roughly the first ten moves or so. In the opening, it’s agood idea to do three things— bring out your bishops and knights, try to control the center of theboard, and castle your king.
攀岩:One of the most important concepts in climbing is to keep your weight on your feet asmuch as possible. There’s a myth that climbers can hang all day on their arms. In reality, goodclimbers have practiced specific ways of keeping their weight over their feet whenever possible

django shell
在输入以上数据之后,可以通过交互式终端会话访问这些数据,在测试项目和排除故障的时候会用上。执行命令python manage.py shell可以打开shell会话。

    原文作者:七月
    原文地址: https://zhuanlan.zhihu.com/p/48531016
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞