- 完善的用户功能和用户引导机制。包括用户的注册、登录、密码找回。还有个人中心中修改个人信息、修改密码、更换头像等。该平台账号使用邮箱注册,可通过邮箱或用户名登录,需保证此邮箱的可用性,后期用来接收系统的通知邮件。此外,用户使用的引导流程需要在平台首页显示。
- 方法展示和方法使用功能。展示常用的差异表达基因筛选方法和指标,并且可以根据被使用次数进行排序。点击方法进入方法详情,详情列表的信息包含对该方法的介绍、对内部处理机制的说明、常用的参数阈值以及要求的数据格式等。用户可以根据页面提示信息进行文件上传,格式检查,参数上传和参数核查等步骤最终得到结果文件。
- 结果展示和结果下载功能。对于处理得到的结果文件,平台只取其前二十行作为展示,其它展示内容根据用户输入文件的内容进行调整。所有展示文件均可通过页面提示进行下载。用户也可以对相关可视化结果的样式进行自主调整,另行下载。
- 历史记录机制。对于在登录状态下使用该平台的用户,其个人足迹,包括所用方法的方法编号,使用时间,上传的原文件,处理过程中选取的参数等,都会被记录存储。此类信息均可在用户个人中心中查看,曾经上传过的文件也可在此处点击下载。
- 良好的用户交互,需要具备完善的错误提示信息以便于用户迅速定位出操作不正确的部分。
- 平台的数据安全以及用户信息的安全。在用户使用邮箱注册成功后需要通过邮件进行激活操作;在对密码和邮箱进行修改的过程中,相应链接都会采用动态生成的方式发送至用户邮箱;对常见的Web攻击做好防范。
- 打开MySQL的command line。
- 输入安装时设置的密码。
- 创建一个用于此项目的数据库demo,使用该数据库,
通过 “source .sql文件存储路径” 完成数据库表的创建。
create database demo;
show databases;
use demo
source d:/degs.sql
- 查看数据库中的表,若与下图一致则建库完成。
show tables;
python安装教程(Windows系统,python3.7为例)
- 命令行下进入python安装目录下的Scripts目录中
cd D:\Python3.7.3\Scripts\
- 查看当前已安装的程序包
D:\Python3.7.3\Scripts>pip list
Package Version
---------------------- --------
absl-py 0.8.0
asn1crypto 0.24.0
astor 0.8.0
astroid 2.3.1
cffi 1.12.3
colorama 0.4.1
cryptography 2.7
cycler 0.10.0
decorator 4.4.0
defusedxml 0.6.0
diff-match-patch 20181111
Django 2.2.6
django-crispy-forms 1.8.1
django-formtools 2.2
django-import-export 2.0.1
django-pure-pagination 0.3.0
django-ranged-response 0.2.0
django-reversion 3.0.5
django-simple-captcha 0.5.12
django-simpleui 3.9
entrypoints 0.3
et-xmlfile 1.0.1
flake8 3.7.9
future 0.18.2
gast 0.2.2
google-pasta 0.1.7
grpcio 1.23.0
h5py 2.10.0
httplib2 0.17.0
imageio 2.5.0
isort 4.3.21
jdcal 1.4.1
jieba 0.39
joblib 0.13.2
Keras-Applications 1.0.8
Keras-Preprocessing 1.1.0
kiwisolver 1.1.0
lazy-object-proxy 1.4.2
Markdown 3.1.1
MarkupPy 1.14
matplotlib 3.1.0
matplotlib-venn 0.11.5
mccabe 0.6.1
measure 0.5.1
mock 3.0.5
mpmath 1.1.0
networkx 2.3
numpy 1.17.2
odfpy 1.4.1
openpyxl 3.0.3
opt-einsum 3.1.0
pandas 0.24.2
Pillow 6.0.0
pip 20.0.2
protobuf 3.9.1
pycodestyle 2.5.0
pycparser 2.19
pyflakes 2.1.1
pylint 2.4.2
pylint-django 2.0.13
pylint-plugin-utils 0.6
PyMySQL 0.9.3
pyparsing 2.4.0
python-dateutil 2.8.0
pytz 2019.1
PyWavelets 1.0.3
PyYAML 5.3
scikit-image 0.15.0
scikit-learn 0.21.2
scipy 1.3.0
seaborn 0.9.0
setuptools 45.1.0
six 1.12.0
sklearn 0.0
sqlparse 0.3.0
sympy 1.4
tablib 0.14.0
termcolor 1.1.0
typed-ast 1.4.0
virtualenv 16.7.9
virtualenvwrapper-win 1.2.5
Werkzeug 0.15.6
wheel 0.33.6
wrapt 1.11.2
xlrd 1.2.0
xlwt 1.3.0
- 安装程序包:项目的开发工具是vscode,平时使用的时候安了很多乱七八糟的东西,以上列出的包在这个项目里不是全都能用上,但是需要用的都包含了。可以通过all_packages.txt文件把它们批量安装。
D:\Python3.7.3\Scripts>pip install -r D:/all_packages.txt
- app_users:涉及用户本身的信息,管理用户的登录、退出,用来实现个人信息和使用历史记录的部分。用户注册功能的实现;用户登录功能的实现;密码找回功能的实现;个人中心的功能实现。
- app_methods:涉及方法本身的信息,管理方法列表展示和方法详情展示。方法列表展示功能的实现;方法详情展示功能的实现;文件检查功能的实现;参数检查功能的实现;结果计算功能的实现。
- app_results:涉及结果本身的信息,管理结果文件和由结果绘制出来的图片的展示以及下载。结果存储与下载功能的实现。
- app_operation:为了避免上述三个平行模块之间联系杂乱而增添的上层模块,主要涉及模块间的操作。方法使用次数统计功能的实现;用户使用历史功能的实现。
- utils:提取出的一些在后端逻辑中常用的功能代码。
- templates:存储各种html文件。
- static:存储各种静态文件,包括图片、结果文件、css文件和js文件(一些样式文件是从网上找的,不是每个都能用上)。
- DEG_analyze2:框架生成的主要部分,可以直接把代码写在它下面,也可以抽离成不同app(应用)使结构更加清楚。
- log:存储日志。
- media:用户在登录状态下使用时上传的文件。
- upload_files:上传文件暂存。
- manage.py:启动程序。
在执行以下操作时需要保证自身的权限是全局管理员,需要使用的指令如下:
sudo -s
即可切换到 root 权限。
更新软件目录源
apt update && apt upgrade
然后下载安装 git
apt install git
切换到目录并且克隆本项目
cd /opt/
git clone https://github.com/Horeat/DEGs
切换到安装目录,并安装 mysql
cd /opt/DEGs
apt install mysql-server -y
一定要记住你设置的密码!在后续需要使用该密码进入 mysql。
在这之前,需要对数据库 degs.sql
的编码格式进行替换。可以使用 vim
进行如下替换:
:%s/utf8mb4_0900_ai_ci/utf8_general_ci
:%s/utf8mb4/utf8
:wq
将数据导入到数据库中,第一步需要进行创建数据库,方法如下:
create database degs;
exit
接下来在命令行输入指令:
mysql -u用户名 -p密码 degs < degs.sql
采用 apt
进行安装,并使用文件进行安装对应的库
apt install python3-pip
pip3 install -r all_packages.txt
您在使用过程中需要对 settings.py
进行修改,文件路径如下:
/opt/DEGs/DEG_analyze2/settings.py
修改防火墙规则:在上述文件内修改 ALLOWED_HOSTS
内容即可
ALLOWED_HOSTS = ['*',]
修改数据库账户密码:在上述文件内修改 DATABASE
内容即可
执行下列指令可以启动服务器
cd /opt/DEGs/DEG_analyze2
python manage.py runserver 0.0.0.0:8000
django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.2
django.db.utils.InternalError: (1698, "Access denied for user 'root'@'localhost'")