OnlyOffice文档预览接入(二)

前面说到了怎么接入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文件中:

OnlyOffice文档预览接入(二)_第1张图片
然后再输入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()

至此,用户已经成功接入进Python Example中
OnlyOffice文档预览接入(二)_第2张图片

你可能感兴趣的:(django)