ITPub博客

首页 > IT职业 > IT职场 > django 快速入门

django 快速入门

IT职场 作者:rorog 时间:2021-09-09 09:44:11 0 删除 编辑

Django是Python语言编写的一个全栈式Web框架,可以帮助我们快速编写一个具有数据库功能、增删查改、后台管理等功能的网站。假如你只需要一些很简单的功能,使用flask可能是个更好的选择。但是如果你想快速实现一个XX管理系统,那么用Django绝对是个好办法。本文参考了Django官方文档的Tutorials。另外我这里用的终端是Powershell,如果有些命令不能运行,去掉前面的.。

快速开始

安装Django

首先安装Django包,现在Django已经到了2.0版本,如果还在使用1.11请尽快升级。旧版本以后只修复bug,不会添加新功能。

pip install django

创建项目

Django安装好之后,会附带一个命令行工具django-admin,可以帮助我们管理Django项目。我们可以使用下面的命令创建一个新的Django项目模板。这样会创建django_sample文件夹,项目文件就在其中。另外需要注意项目文件夹最好是个性化一点的,不要和django、sys这样的第三方库或者python系统库重名。

django-admin startproject hello_django

创建好项目之后,我们进入项目文件夹中。用下面的命令就可以运行Django项目了。默认情况下,我们可以通过http://127.0.0.1:8000/来访问正在运行的项目。由于没有任何页面,所以会显示这么一个调试窗口。

python manage.py runserver

图片描述

运行成功

创建app

在Django项目中,app表示更小的一个功能单位,比方说在一个博客管理系统中,对博客的增删查改等功能就应该聚合在一个app中。进入项目目录中,用startapp命令创建app。

cd .hello_django
django-admin startapp hello

这时候项目目录结构应该类似这样。

图片描述

目录结构

为了让django包含创建的app,我们还需要激活app。打开配置文件,找到INSTALLED_APPS,然后把我们创建的app配置添加进去,这样django才能使用我们的app。

INSTALLED_APPS = [    'hello.apps.HelloConfig',    'django.contrib.admin',    'django.contrib.auth',    'django.contrib.contenttypes',    'django.contrib.sessions',    'django.contrib.messages',    'django.contrib.staticfiles',
]

模型层

设置数据库

打开配置文件settings.py,找到数据库一行,可以看到如下的配置。

DATABASES = {    'default': {        'ENGINE': 'django.db.backends.sqlite3',        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

如果我们这时候使用python .manage.py migrate命令生成数据库表,就会在项目中出现一个db.sqlite3文件,这就是默认的数据库文件,使用IDEA右键点击并选择As DataSource就可以将其作为数据库打开。然后我们会看到生成了10多个数据库表,这是Django程序存储数据生成的表。

图片描述

django系统表

除了sqlite数据库,django还支持POstgreSQL、MySQL、Oracle这几个数据库。如果添加第三方后端支持,还可以使用SQL Server、IBM DB2等数据库。例如我现在准备使用PostgreSQL数据库,就修改为下面的配置。这时候NAME属性的意义就是数据库的名字。另外必须确保数据库事先存在,django可以自动创建表,但是不能自动创建数据库。

DATABASES = {    'default': {        'ENGINE': 'django.db.backends.postgresql',        'NAME': 'test',        'USER': 'postgres',        'PASSWORD': '12345678',        'HOST': '127.0.0.1',        'PORT': '5432',
    }
}

创建模型

django支持ORM模型,也就是说我们可以不使用SQL语句就对数据进行增删查改。我们要做的就是在模型中指定和数据库的关系。

打开hello app中的models.py文件,然后添加下面两个模型。这两个模型是宠物和主人的关系。如果使用过其他ORM框架比如Hibernate之类的话,对这种结构应该非常熟悉。我们在定义模型的时候指定每一个字段的名字、长度、是否唯一等信息。值得注意的是,如果需要的值只可能是几个固定值,可以定义一个元组(该元组有一对值构成,第一个值是实际存在数据库中的值,第二个是给人类显示的友好可读值),然后传入choices参数。models.ForeignKey用来指定外键约束,还有一些其他的对应关系例如多对多、一对一等就不介绍了。

from django.db import modelsclass Owner(models.Model):
    GENDER = (
        ('M', 'MALE'),
        ('F', 'FEMALE')
    )
    id = models.AutoField(primary_key=True)
    name = models.CharField(max_length=30, unique=True)
    gender = models.CharField(max_length=1, choices=GENDER)
    birthday = models.DateField()class Pet(models.Model):
    TYPE = (
        ('C', 'Cat'),
        ('D', 'Dog')
    )
    id = models.AutoField(primary_key=True)
    owner = models.ForeignKey(Owner, on_delete=models.CASCADE)
    name = models.CharField(max_length=50)
    type = models.CharField(max_length=1, choices=TYPE)

生成并应用迁移文件

上面我们创建了两个模型,实际上,只要我们对模型进行了更改,就应该使用下面的命令生成这些更改。

python manage.py makemigrations hello
Migrations for 'hello':
  hellomigrations

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/2976/viewspace-2806671/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-09-12

  • 博文量
    90
  • 访问量
    577