django java_Django 项目搭建教程

编辑器推荐pycharm,有python开发环境,django版本2.0python版本3.0

1:启动一个项目,如下图点击file选择new,点击django的写入项目名称即可

56b4265cb338221176dcb3e232293c8b.png

2:刚建立好的项目的初始化如下图

595c7f4d2b81754d67e6e843d0ec0c8d.png

3:我们可以初始化一个app,python manage.py startapp pools,我们可以看到已经生产一个app pools

336184fddd2b152be2c6b7d629dbac08.png

3384e1842688425272cfd8c35aff2617.png

4: 根据开发的习惯我们喜欢app放在同一个文件夹下面 方便后期引入使用和修改,所以我们创建一个apps文件夹来保存我们的应用,目录如下图

edb2f9e99a0a33802e66d5d76e0df302.png

这样把pools移动到apps里面去,并且把apps.pools添加到settings

b4aa6ba0c2402318a9e3128cf4c94cc4.png

5:来配置我们的数据库,mysql为例子,首先安装pymysql  pip install pymysql(这个地方插一句,自动安装的pip 可能不是很好用建议大家网上搜索get-pip.py  通过python get-pip.py来安装pip)

安装完pymysql 之后,再settings.py 里面引入

f76c51d07b2f05c026c1e58f8c4e2863.png

引入以后就可以定义我们的数据库了,同样的出于开发debug方便和后期再settings里面的引入文件过多我们需要建一个conf文件下面来存储我们每个需要引入模块的配置这个conf和settings是同级的,此处不上图了比较简单,直接看mysql配置

DATABASES = {

'default': { #默认配置数据库名字,多数据时可以修改'ENGINE': 'django.db.backends.mysql',

'NAME': '***', #数据库名'USER':'***', #数据库用户名'PASSWORD':'***',#数据库密码'HOST': '***',#主机名'PORT':***,#端口'CONN_MAX_AGE': None,

'OPTIONS':{'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",

},

'TEST': {

'CHARSET': 'utf8',

'COLLATION': 'utf8_general_ci',

}

}

}

如果连接的事oracle的数据库,把ENGINE的字段改成

django.db.backends.oracle

如果一个项目中需要连接多个数据库,连接名字不能都用默认名字需要不同的名字区别

DATABASES = {

'mysqlname': { #默认配置数据库名字,多数据时可以修改'ENGINE': 'django.db.backends.mysql',

'NAME': 'test', #数据库名'USER':'***', #数据库用户名'PASSWORD':'***',#数据库密码'HOST': '***',#主机名'PORT':****#端口

},

'oraclename': { #默认配置数据库名字,多数据时可以修改'ENGINE': 'django.db.backends.oracle',

'NAME': '***', #数据库名'USER':'***', #数据库用户名'PASSWORD':'***',#数据库密码'HOST': '***',#主机名'PORT':***,#端口

},

}

对于多个数据库映射model的问题对应的

classWebCheckKeyWordGroup(models.Model):

classMeta:

db_table = "***"

app_label = 'oracle'

name = models.CharField(max_length=255, null=False, default="", verbose_name="组名")

以上我们在class Meta里面添加了app_label

编写自己的数据库路由,根据app_label 指向哪一个数据库

class AuthRouter:

"""

A router to control all database operations on models in the

auth application.

"""

def db_for_read(self, model, **hints):

"""

Attempts to read auth models go to auth_db.

"""

if model._meta.app_label == 'oracle':

return 'oraclename'

return 'default'

def db_for_write(self, model, **hints):

"""

Attempts to write auth models go to auth_db.

"""

if model._meta.app_label == 'oracle':

return 'oraclename'

return 'default'

def allow_relation(self, obj1, obj2, **hints):

"""

Allow relations if a model in the auth app is involved.

"""

if obj1._meta.app_label == 'oracle':

return 'oraclename'

return 'default'

def allow_migrate(self, db, app_label, model_name=None, **hints):

"""

Make sure the auth app only appears in the 'auth_db'

database.

"""

if app_label == 'oracle':

return db == 'oraclename'

return 'default'

然后把我们写的路由添加到settings里面就ok

DATABASE_ROUTERS = ['path.to.AuthRouter']

以上配置完我们的mysql,如何查看我们的配置没有问题,打开terminal 运行python manage.py shell

3999d6cf6a79a2842fb8bd411a4cfa40.png

如果没有出现报错,就是没有问题的

以上是我们数据库的基础配置有问题可私信,大家共同进步

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值