前面说到了怎么接入onlyoffice进自己的系统,但是接入后如果涉及到权限问题,那么前面的内容是远远做不到的,例如我们有自己的用户中心,那么在user.py文件里USERS这个list的内容就需要接入进我们自己的用户了。这个时候我们就需要创建models.py,但是由于不是新建项目,所以我们需要将自己这边的数据库字段导入到Example项目中。
首先在setting.py
文件里,将DATABASE换成自己系统项目的databse配置信息
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'HOST': '10.30.0.171',
'PORT': '3306',
'USER': 'root',
'PASSWORD': 'cmic@123',
'NAME': 'miningcloud_run',
'OPTIONS': {
'init_command': 'SET sql_mode="STRICT_TRANS_TABLES"' # 这个一定要写,不然会无法进行trans
}
}
}
因为官网上,Python Example是没有migrations这个文件夹的,所以就在src目录下(setting.py同级目录下)。并在migrations里面创建一个__init__.py的空文件。因为官方使用的django版本是2.2.6,所以此时已经不支持MYSQLClient了,于是pip3 install pymysql
安装pymysql。而此时安装好后运行项目也会报一个类似于mysqlclient版本太低的错,而pymysql我们安装的是最新版本PyMySQL==0.9.3
,此时我们需在__init__.py文件中手动更改pymysql版本(注意:这个__init__.py文件是在src目录,即与setting.py同级目录下,这个文件需新建)。配置如下:
import pymysql
pymysql.version_info = (1, 4, 6, 'final', 0)
pymysql.install_as_MySQLdb()
接下来我们还需要注册app:
在src目录下创建一个apps.py文件,并在里面输入:
from django.apps import AppConfig
class AppConfig(AppConfig):
name = 'app'
然后在setting.py里面,找到INSTALLED_APPS
INSTALLED_APPS = [
'django.contrib.contenttypes',
'django.contrib.sessions',
'src' # 这个为注册的app路径,本来完整的应该是src.apps.AppConfig,但是会无法找到的错
]
一切准备就绪后,我们就该导入models文件了,首先在manage.py所在目录下,输入python3 manage.py inspectdb > models.py
并把models.py文件放入src/views
目录下,此时数据库中的模型则全部导入进models.py文件中:
然后再输入python3 manage.py migrate --fake
此时已将数据库迁入成功。我们需要将用户信息读取出来,于是在src/utils
的users.py文件中,
首先导入我们嵌入的models,再获取数据:
from urllib.parse import unquote
from src.views.models import MiningUserinfo
def getUserInfo():
USERS = []
user = MiningUserinfo.objects.all()
for i in user:
user_single = {
'uid': i.user_id,
'uname': i.username
}
USERS.append(user_single)
return USERS
USERS = getUserInfo()