Django实践:创建APP
本文简要介绍在一个Django项目中如何创建一个APP。主要包括:
- 创建app,及激活模型
- 编写模型
- 迁移模型
- 注册模型
1. 创建APP及激活模型
在命令行中输入python manage.py startapp appname
,例如创建一个名为“learning_logs”的app:
python manage.py startapp learning_logs
通过如下代码会在项目目录learning_log/下新建一个名为learning_logs的文件夹,文件夹下面有__init__.py,admin.py,models.py,views.py,test.py,apps.py(里面默认保存APP名称)等几个文件。最重要的是:admin.py(注册模型),models.py(定义模型),views.py(定义视图)。
在项目目录learning_log/learning_log/settings.py文件中找到INSTALLED_APPS
这个应用定义列表,添加一个'learning_logs',
告诉Django项目这个名为'learning_logs'
的应用程序安装在项目中了。
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'learning_logs',
]
如果是采用Pycharm自动添加的,里面会自动在文件中已经添加好了激活代码如下:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'learning_logs.apps.LearningLogsConfig', # 在learning_logs/apps.py中定以为name='learning_logs'
]
2. 编写模型
在新建APP目录下的learning_log/learning_logs/models.py中编写模型的实现代码,例如添加一个名为Topic的类,这个类的基类是models.Model。
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
3. 迁移模型
在命令行中中输入:
python manage.py makemigrations learning_logs
这个命令让数据库能够存储与模型Topic有关的数据,命令makemigrations appname
让Django确定如何修改数据库,使其能够存储与我们定义的新模型相关联的数据。命令行执行结果表明,Django创建了一个名为0001_initial.py的迁移文件,这个文件将在数据库中为模型Topic创建一个列表。
应用迁移,在命令行中输入:
python manage.py migrate
migrate
命令让Django替我们修改数据库。
4. 注册APP
- 创建超级账户,在命令终端输入:
python manage.py creatsuperuser
然后输入用户名,email,密码等。
- 在新建APP目录下的learning_log/learning_logs/admin.py中添加:
from django.contrib import admin
from learning_logs.models import Topic
# Register your models here.
# assert isinstance(admin.site.register, object)
admin.site.register(Topic) # 向管理网站注册模型