Django实践:创建APP



Django实践:创建APP

本文简要介绍在一个Django项目中如何创建一个APP。主要包括:

  1. 创建app,及激活模型
  2. 编写模型
  3. 迁移模型
  4. 注册模型

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) # 向管理网站注册模型

参考文献

  1. 《Python编程从入门到实践》:https://ehmatthes.github.io/pcc/
  2. Django帮助文档:https://docs.djangoproject.com/zh-hans/2.0/
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值