编码员们好。
本文旨在帮助初学者了解如何**在Django框架中通过从头开始编码一个新的应用程序并主要使用终端来创建一个模型**。该示例源代码可以从Github(MIT许可)下载,并为业余爱好和商业产品进行扩展。对于新手来说,Django是一个由经验丰富的开发者建立的高级Python Web框架,它鼓励快速开发和简洁、务实的设计。
谢谢你的阅读!- 内容由**App Generator**提供。
- 在Django中创建模型--源代码(Github/MIT License)
- 更多的Django样本提供的认证,基本模块
让我们来编写Django代码
检查Python版本--推荐版本为Python3
$ python --version
Python 3.8.4 <-- All good, we have a 3.x version
创建/激活一个虚拟环境 - 基于Unix的系统
$ virtualenv env
$ source env/bin/activate
对于Windows,语法略有不同
$ virtualenv env
$ .\env\Scripts\activate
安装Django
$ pip install django
创建一个新的Django项目
$ mkdir django-create-model
$ cd django-create-model
在新目录内,我们将调用startproject 子命令。
$ django-admin startproject config .
注意:考虑到命令末尾的. 。
设置数据库
$ python manage.py makemigrations
$ python manage.py migrate
启动应用程序
$ python manage.py runserver
$
$ # Access the web app in browser: http://127.0.0.1:8000/
这时我们应该在浏览器中看到默认的Django页面。
创建一个新的Django应用程序
$ python manage.py startapp sample
可视化默认的SQL设置-config/settings.py
# File: config/settings.py (partial content)
...
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
...
在sample 应用程序中定义一个新的模型 Books 。下面的修改应该被添加到sample/models.py 。
# File: sample/models.py
from django.db import models
class Book(models.Model): # <- NEW
title = models.CharField(max_length=100) # <- NEW
author = models.CharField(max_length=100) # <- NEW
publication_date = models.DateField() # <- NEW
更新项目配置以使用新的模型 - 在项目配置中必须将sample 应用程序添加到INSTALLED_APPS 部分。
# File: config/settings.py (partial content)
...
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'sample' # <- NEW
]
...
提示- 为了快速检查最新的变化,我们可以运行check 子命令。
$ python manage.py check
System check identified no issues (0 silenced).
生成SQL代码
$ python manage.py makemigrations # generate the SQL code
Migrations for 'sample':
sample\migrations\0001_initial.py
- Create model Book
在数据库中应用变化
$ python manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, contenttypes, sample, sessions
Running migrations:
Applying sample.0001_initial... OK
通过CLI使用该模型
一旦模型被创建,我们可以通过Django shell来使用它
$ python manage.py shell
>>>
>>> from sample.models import Book # import the Book model in our context
>>> from django.utils import timezone # used to provide the value for publication_date
>>>
>>> book1 = Book(title='The Adventures of Tom Sawyer', author='Mark Twain', publication_date=timezone.now() )
>>> book1.save() # save the new book
列出所有书籍(使用CLI)
$ python manage.py shell
>>>
>>> from sample.models import Book
>>> Book.objects.all()
<QuerySet [<Book: Book object (1)>]>
我们可以看到我们的新书被查询到了。让我们改进描述该对象的信息。
Django模型--添加对象的文本表述
为了实现这个目标,我们应该为Book 模型定义__str__() 方法。
# File: sample/models.py
from django.db import models
class Book(models.Model):
title = models.CharField(max_length=100)
author = models.CharField(max_length=100)
publication_date = models.DateField()
def __str__(self): # <- NEW
return self.title # <- NEW
让我们重新启动Django控制台并检查结果。
$ python manage.py shell
>>>
>>> from sample.models import Book
>>> Book.objects.all()
<QuerySet [<Book: The Adventures of Tom Sawyer>]>
通过管理部分使用该模型
Django开箱即有一个admin 部分,允许我们轻松地管理项目中定义的所有模型。
为了在管理控制台中管理Book ,我们需要创建一个superuser (也就是管理员),然后在register ,使Book ,以便在管理区中可见。
创建超级用户
$ python manage.py createsuperuser
sername (leave blank to use 'sm0ke'): admin
Email address: admin@appseed.us
Password:
Password (again):
Superuser created successfully.
注册
Book模型,使其在admin部分可见 - 按以下方式编辑sample/admin.py。
# File: sample/admin.py
from django.contrib import admin
from .models import Book # <- NEW
admin.site.register(Book) # <- NEW
以管理员身份认证 -
http://localhost:8000/admin/
在这一点上,我们应该在用户界面中看到Books 模型,并且能够执行CRUD操作。
创建Django模型--列出模型项目
Django创建模型--编辑记录
**谢谢你的阅读!**欢迎在评论区留言。