zoukankan      html  css  js  c++  java
  • Django学习之创建模型

    首先,我们来说一下项目(project)和应用(app)的区别

    项目(project)是一个网页站点配置和应用(app)的集合。

    应用(app)是一个用来完成特定功能的网页应用,比如博客应用、在线投票应用等等。一个模型就对应着一个应用。

    1、启动一个应用(app),让我们来启动一个博客应用(blog)

    python manage.py startapp blog

    用tree blog命令来看一个blog目录的文件结构

    blog
    ├── admin.py
    ├── __init__.py
    ├── migrations
    │   └── __init__.py
    ├── models.py
    ├── tests.py
    └── views.py

    2、创建模型

    首先我们来想一下一个博客需要哪些必要的元素,博客标题(title)、正文(content)、发布时间(published_time)、创建时间(created_time)、创建者(user)

    然后我们将它们转换成python语言。别忘了,django是一个基于Python框架。下面就是具体代码:

    cd blog

    编辑models.py文件

    from django.db import models
    from django.contrib.auth.models import User
    from django.utils import timezone
    
    # Create your models here.
    class Blog(models.Model):
        user=models.ForeinKey(User)
        title=models.CharField(max_length=200)
        text=models.TextField()
        created_time=models.DateTimeField(default=timezone.now)
        published_time=models.DatetimeField(blank=True,null=True)

    每个模型都是由一个模型类(class)来实现的,所有模型类都继承自models.Model,每个模型类都有若干个类变量,每个变量又表示着在数据库中存储的一个字段(field)。每个字段(field)都是一个字段类的实例。

    3、激活模型

    要激活一个模型需要做这么几件事:

    • 安装模型

    进入到myproject目录,编辑settings.py,在INSTALLED_APPS处添加模型blog

    INSTALLED_APPS = (
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'blog',
    )
    • 数据库设置

    继续编辑settings.py文件,在DATABASES处修改成如下:

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'blog',
            'USER':'tmyyss',
            'PASSWORD':'password',
            'HOST':'localhost',
            'PORT':'3306',
        }
    }

    NAME:模型名称

    USER:数据库用户

    PASSWORD:数据库用户的密码

    HOST:主机 ,因为是开发环境,所以就填localhost

    PORT:数据库通信端口。

    修改完成后保存文件。

    • 创建数据库用户和数据库

    首先创建一个数据库用户tmyyss

    以root登录数据库

    sudo mysql -ppassword

    然后执行

    mysql> grant all privileges on *.* to 'tmyyss'@'localhost' identified by 'password';
    Query OK, 0 rows affected (0.01 sec)
    
    mysql> flush privileges;
    Query OK, 0 rows affected (0.00 sec)

    这样就创建了一个tmyyss用户,密码是password

    接着,我们来创建一个blog数据库。

    mysql> create database blog;
    Query OK, 1 row affected (0.00 sec)

    这位我们就创建了一个blog的数据库。

    • 将python语句的模型sql语句并执行
    tmyyss@ubuntu:~/python/django/myproject$ python manage.py makemigrations
    Migrations for 'blog':
      0001_initial.py:
        - Create model Blog
    tmyyss@ubuntu:~/python/django/myproject$ python manage.py migrate
    Operations to perform:
      Apply all migrations: admin, blog, contenttypes, auth, sessions
    Running migrations:
      Applying contenttypes.0001_initial... OK
      Applying auth.0001_initial... OK
      Applying admin.0001_initial... OK
      Applying blog.0001_initial... OK
      Applying sessions.0001_initial... OK

    好了,到目前为止,我们初步的将模型创建完成了。

  • 相关阅读:
    1135
    Sort(hdu5884)
    🍖CBV加装饰器与正反向代理简介
    🍖django之Cookie、Session、Token
    🍖Django之forms组件
    🍖forms组件源码分析
    🍖Django与Ajax
    🍖Django框架之模板层
    进程的内存空间相互隔离
    Codeforces Round #583 (Div. 1 + Div. 2, based on Olympiad of Metropolises), problem: (D) Treasure Island
  • 原文地址:https://www.cnblogs.com/tmyyss/p/4367884.html
Copyright © 2011-2022 走看看