如何独立使用django的数据库访问功能

如何独立使用django的数据库访问功能,第1张

1 安装Django

[plain] view plain copy

cd Django-14

python setuppy install

2 安装postgresql的客户端:

[plain] view plain copy

sudo apt-get install -y postgresql-client-91 python-psycopg2

3 新建project:

[plain] view plain copy

django-adminpy startproject myproject

4 在myproject下新建app:

[plain] view plain copy

python managepy startapp myapp

4 新增环境变量:

编辑/etc/profile文件,在末尾加入以下语句:

[plain] view plain copy

<span style="color:#FF0000;"> export PYTHONPATH=$PYTHONPATH:/home/yc/src/myproject

export DJANGO_SETTINGS_MODULE=myprojectsettings</span>

5

假设数据库已经由Django的另一个应用(名称为otherapp)建好,数据库类型是postgresql,名称为mydb,位于

192168123。见好的数据库中有一个表,名称是otherapp_user,则将otherapp/modelspy拷贝到myapp

/modelspy。

注意检查modelspy下的class user类的class Meta:部分,如果没有applabel标签,则要加上:app_label='otherapp'

再修改/home/yc/src/myproject下的settingspy文件,如下:

[plain] view plain copy

DATABASES = {

'default': {

'ENGINE': 'djangodbbackendspostgresql_psycopg2', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'

'NAME': 'mydb', # 'vps2db_test1' Or path to database file if using sqlite3

'USER': 'postgres', # Not used with sqlite3

'PASSWORD': '123', # Not used with sqlite3

'HOST': '192168123', # Set to empty string for localhost Not used with sqlite3

'PORT': '5432', # Set to empty string for default Not used with sqlite3

}

}

[plain] view plain copy

INSTALLED_APPS = (

'djangocontribauth',

'djangocontribcontenttypes',

'djangocontribsessions',

'djangocontribsites',

'djangocontribmessages',

'djangocontribstaticfiles',

'<span style="color:#FF0000;">myapp</span>',

)

6 在myapp目录下编写测试程序

[python] view plain copy

from models import user

if __name__=="__main__":

try:

u = userobjectsget(id=user_id)

except userDoesNotExist:

print "user not exist)

return None

else:

return u

方法/步骤

修改settingpy里面的DATABASES元组为

DATABASES = {

'default': {

'ENGINE': 'djangodbbackendsmysql',

'NAME': 'books', #你的数据库名称

'USER': 'root', #你的数据库用户名

'PASSWORD': '', #你的数据库密码

'HOST': '', #你的数据库主机,留空默认为localhost

'PORT': '3306', #你的数据库端口

}

}

INSTALLED_APPS = (

'books',#你的数据库名称

)

在mysql里面创建books数据库

检查配置是否有语法错误

使用python managepy sqlall books 显示mysql语法

使用python managepy syncdb同步模型中的数据库

创建成功!

settingpy:都要配置下

USER, PASSWORD, HOST

MySQL插件 :MySQL-python version 121p2 or higher

ENGINE :djangodbbackendsmysql

NAME:你的数据库名字

PostgreSQL插件:postgresql_psycopg2  地址>

ENGINE :djangodbbackendspostgresql_psycopg2

NAME:你的数据库名字

例如我的oracle配置:

可以啊。不过要手工写了。在配置里将数据库路径放进去。然后在module里,自己选择相应的库与相应的model做关联。

此外还可以指定表格中的字段名。另外如果上面的方法不好用,你也可以自己直接连接数据库,自己管理。

django的数据库连接是没有连接池的。 每次访问都连接一次,效率低。不过你也可以用同样的原理 ,用mysqldb之类的库,自己建立数据库连接。

django 怎么从数据库读数据,成为表单默认值

最简单的办法是。为数据库的表建立一个model。具体做法是这样子。

1在settingspy里设置数据库连接方式。连接错误后面都没有办法

2在models设置一个数据库表的对应数据结构,通常叫关系对象模型,所以叫model,它就是一个类。你可以用django-adminpy probe,似乎是这个命令,就是一个数据库的探测命令,可以根据表,自动生成model的代码。当然如果你先写了model的代码就可以用syncdb命令生成数据库的表

在网上看到都是使用Django的models和makemigration,migrate命令来创建新表,并使用。可是我的数据已经存在了已经创建好,并且已经存储有数据了,不能再重新创建新表了。了解Django的表明和models名称的映射关系就可以让Django使用已经存在的表。

假如在Django存在models如下:

[python] view plain copy

from djangodb import models

# Create your models here

class Sciencenews(modelsModel):

id = modelsCharField(max_length=36,primary_key=True)

first_module = modelsCharField(max_length=30,default="News")

second_module = modelsCharField(max_length=30,default="Latest News")

title = modelsCharField(max_length=300)

author = modelsCharField(max_length=60,null=True)

publish_date = modelsCharField(max_length=35,null=True)

content = modelsTextField(null=True)

crawl_date = modelsCharField(max_length=35,null=True)

from_url = modelsCharField(max_length=350,null=True)

执行数据迁移命令:

[python] view plain copy

python managepy makemigration

python managepy migrate

会在数据库中生成名称为show_sciencenews的数据表。show为应用名称,此处我的应用名称为show。可以看到Django创建表的命名规则:应用名_模型名。

我的存储爬取到的数据的表格名称原来为science_news,想要Django使用它,而不是创建新的表,只需要把的它的名称改为:应用名_要与该表映射的models名称,在此处我改为show_sciencenews。然后使用如上的数据迁移命令,这时可能会提示数据表已经存在的错误,不用理会,models已经和数据表映射上了。接下来只需要正常使用models和数据表就可以了。

forms文件和数据库没关系,有关数据库的代码都卸载models文件中了,只能简历forms和models的关系,在forms文件中的form里面添加

内部类

Meta,Meta包含属性model指向对应model

以上就是关于如何独立使用django的数据库访问功能全部的内容,包括:如何独立使用django的数据库访问功能、py3.6.2下,django 框架连接数据库的时候出现的、Python 和 Django 在WIN8下连接数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10197462.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存