python27+django建立app

來源:互聯網
上載者:User

標籤:

python manage.py startapp polls建立一個叫polls的app

編輯檔案 polls/models.py :

1from django.db import models2class Poll(models.Model):3  question = models.CharField(max_length=200)4  pub_date = models.DateTimeField(‘date published‘)

再次編輯檔案 settings.py ,修改設定INSTALLED_APPS包含字串 ‘polls‘ 。修改後的配置如下:

INSTALLED_APPS = (‘django.contrib.auth‘,‘django.contrib.contenttypes‘,‘django.contrib.sessions‘,‘django.contrib.sites‘,‘polls‘)


現在Django知道要去包含 polls 這個應用了。

在 Django 中,有一個記錄了項目中所有 model 中繼資料的表,就是 ContentType。表中一條記錄便對應著一個存在的model ,那麼我們只要通過一個中繼資料表的 id 和一個具體資料表中的 id,便可以找到任何model中的任何記錄。該模組包含在django預設模組中

django1.9以後,使用migrate代替syscdb

運行python manage.py migrate來為資料庫中每個應用建立一個資料庫表。 

起初一直報錯:

RuntimeError: Model class django.contrib.auth.models.Permission doesn‘t declare an explicit app_label and isn‘t in an application
in INSTALLED_APPS.

原來我把django的settings檔案裡的模組都注釋掉了,而相應關聯的位置沒有更改,於是解除注釋重新運行,過了

可以運行以下的命令來進行檢查跟蹤:

  • python manage.py validate -- 檢查模型的結構錯誤。
  • python manage.py sqlcustom polls -- 輸出所有為應用定義的自訂SQL語句 (例如表修改和約束)。
  • python manage.py sqlclear polls -- 根據已存在的表,輸出這個應用中必要的DROP TABLE語句。
  • python manage.py sqlindexes polls -- 輸出這個應用CREATE INDEX語句。
  • python manage.py sqlall polls -- sql,sqlcustom和sqlindexes命令產生的SQL語句的結合。

python manage.py migrate主要作用是產生相應的要使用的資料庫,對應的models需要在settings裡設定,如果有所更改,只需要用manage.py makemigrations命令來提交修改,然後運行python manage.py migrate就可以更新資料庫。

更新完畢後,你就可以在資料庫裡看到表,如果看不到,可以用api方式校正,詳見下篇

python27+django建立app

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.