Anaconda+django寫出第一個web app(二)


今天開始建立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/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM