美文网首页Python技巧大全
好轮子就拿来用,剥立使用Django的ORM

好轮子就拿来用,剥立使用Django的ORM

作者: DigiHacker | 来源:发表于2019-12-13 12:12 被阅读0次
image

Django的ORM非常的好用,特别是migration. 熟练了以后几乎不用运行SQL就可以管理数据库和无缝升级Schema. 可生活不只有网页啊,我想写个桌面程序,能不能也用它呢?答案当然是可以的。

得益于Django良好的代码结构,Django的orm并不需要任何网页相关的代码,那只需要模拟一个django项目的结构就可以了。

手动创建象下图的数据结构,熟悉django的同学就会发现很象django项目,这样就避免了可能会有的代码路径问题。

image

在manage.py中,我们要引入settings和必要的命令行支持去运行migration

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 中加上数据库信息,和引入data这个app

# settings.py
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': 'sqlite.db',
    }
}

INSTALLED_APPS = (
    'data',
    )

SECRET_KEY = 'REPLACE_ME'

models.py里创建我们需要的model即可

from django.db.models import Model, TextField, CharField

class Stock(Model):
    name = CharField(max_length=20,default='')
    stockid = CharField(max_length=20,default='')

main.py 就是我们真正的项目代码,但需要引入正确的django库

import os

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings")

from django.core.wsgi import get_wsgi_application

application = get_wsgi_application()

from data.models import *

s = Stock(name='test')
s.save()

first = Stock.objects.all()[0]

print(first.name)

最后别忘了运行makemigrations和migrate命令。再运行main.py, 真香!

相关文章

网友评论

    本文标题:好轮子就拿来用,剥立使用Django的ORM

    本文链接:https://www.haomeiwen.com/subject/umrfnctx.html