python manage.py startapp polls创建一个叫polls的app
编辑文件 polls/models.py :
1 from django.db import models 2 class 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 - Python技术站