首页IT科技django与mysql数据库(django 的 ORM 单独使用 vkill’blog “技术本身没有太多价值,掌握了新的思考方式才是真的收获”)

django与mysql数据库(django 的 ORM 单独使用 vkill’blog “技术本身没有太多价值,掌握了新的思考方式才是真的收获”)

时间2025-08-03 04:19:50分类IT科技浏览5063
导读:到底啥时候使用呢,比如说我们开发网站时要写入基础数据这些的时候,用sql ? 太土了,还有关联表的数据sql可就麻烦了...

到底啥时候使用呢               ,比如说我们开发网站时要写入基础数据这些的时候                      ,用sql ? 太土了       ,还有关联表的数据sql可就麻烦了

好了        ,上代码

1               、不依赖 django project 单独使用

import os

from django.conf import settings

settings.configure(

#DATABASE_ENGINE = sqlite3,

#DATABASE_NAME= os.path.join( os.path.dirname(__file__), db\\sqlite3.db),

DATABASES = {

default: {

ENGINE: sqlite3,

NAME: os.path.join( os.path.dirname(__file__), db\\sqlite3.db),

}

}

)

from django.db import models

class Person(models.Model):

class Meta:

db_table = persons

app_label = test

created_at = models.DateTimeField(created_at, auto_now_add = True)

updated_at = models.DateTimeField(updated_at, auto_now = True)

name = models.CharField("name", max_length = 20)

age = models.IntegerField("age")

p = Person()

p.name = "a"

p.age = 111

p.save()

2                      、依赖django project                       ,其实就是使用了 django project 中的 settings 和 models               ,这个很像rails 中的seed        ,哈哈

注意哈                      ,下面代码中加 path 那段要理解下意思再加啊               ,不要乱加,我的seed.py位置在 #{django_project}/db/seed.py

import os

os.sys.path.append(os.path.join( os.path.dirname(__file__), ..)) #add project root directory to sys.path

import settings as project_settings

from django.conf import settings

settings.configure(

DATABASES = project_settings.DATABASES

)

from firstapp.models import *

p = Person()

p.name = "a"

p.age = 111

p.save()

3       、使用 manage.py db_seeds                       ,类似于 rails 中的 rake db:seed 那样                      ,呵呵,这个和2差不多               ,只不过是用了 django 的manage.py 来执行                      ,更django

1)写 command文件       ,lib/django13/management/commands/db_seeds.py 文件内容如下               ,注意这里把 lib/django13 看成是 app                       ,像 django/contrib/auth 那样       ,management/commands 这个目录结构是死的        ,django从每个app的这个目录下下找 *.py                       ,文件名 db_seeds 就是 manage.py db_seeds 这里的

from django.core.management.base import NoArgsCommand

import settings

import os

class Command(NoArgsCommand):

help = "exec db/seeds.py file for add master data."

def handle_noargs(self, **options):

for app in settings.INSTALLED_APPS:

try:

exec("from %s.models import *" % app)

except:

pass

execfile(os.path.join(os.path.dirname(settings.__file__), db/seeds.py))

2)settings.py 中 INSTALLED_APPS 里启用 lib.django13 这个app

INSTALLED_APPS = (

django.contrib.auth,

......

south,

lib.django13,

)

3)项目目录/db/seeds.py 内容如下

print User.objects.all()

Last modified by vkill on2011/05/27 11:03

声明:本站所有文章               ,如无特殊说明或标注        ,均为本站原创发布               。任何个人或组织                      ,在未征得本站同意时               ,禁止复制        、盗用                      、采集               、发布本站内容到任何网站        、书籍等各类媒体平台                      。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理       。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
python让用户输入数字猜随机生成的数字(重温Python基础——用户输入和while循环) vue卡住了怎么办(el-dialog在vue3项目中不显示问题)