那里有很多适用于旧版本 Django 的答案,但 Django 不断更新,在我的研究中,我发现 Django 1.8/1.9 没有可行的答案,所以我不得不自己推出。以下是你的做法:
项目结构:
├── data
│ ├── __init__.py
│ ├── migrations
│ │ └── __init__.py
│ └── models.py
├── main.py
├── manage.py
└── settings.py
data 目录和迁移目录包含空的__init__.py 文件。示例models.py 文件内容如下:
# models.py
from django.db import models
class User(models.Model):
name = models.CharField(max_length=255)
email = models.EmailField(max_length=255)
manage.py 文件是典型的 Django manage.py 文件。如果您从新的 django-admin startproject 命令复制它,请务必更改 os.environ.setdefault 中的设置参数:
#!/usr/bin/env python
# manage.py
import os
import sys
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings")
from django.core.management import execute_from_command_line
execute_from_command_line(sys.argv)
settings.py 文件需要 3 个设置:DATABASES、INSTALLED_APPS 和 SECRET_KEY。有关非 SQLite 的数据库,请参阅 Django 文档:
# settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': 'sqlite.db',
}
}
INSTALLED_APPS = (
'data',
)
SECRET_KEY = 'REPLACE_ME'
真正的诀窍在于main.py,您可以在其中针对您的模型进行编码。显然,您必须使用 wsgi 才能使用这两行代码:
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
这是一个示例 main.py:
# main.py
# Django specific settings
import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings")
### Have to do this for it to work in 1.9.x!
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
#############
# Your application specific imports
from data.models import *
#Add user
user = User(name="someone", email="someone@example.com")
user.save()
# Application logic
first_user = User.objects.all()[0]
print(first_user.name)
print(first_user.email)
This project 和 this post 是我找到答案的有用起点,我的拉取请求与 Django 1.9 的工作代码已合并,因此您现在可以从 masnun 的存储库中获取代码。如果您知道更好的方法,请提交拉取请求。