- 需要统计本地用户漫游至全国的数量、比例以及号码
- 需要统计异地用户漫游至本地的数量、比例以及号码
- 针对异地号码,统计其在本地的登录天数/比例
- 针对本地号码,统计其在异地的登陆天数/比例
- 用 Django 作为 Web 框架构建网站,作为整个业务流程的承载
- 用 Mysql 实现数据的存储
- 用 Pyecharts 实现数据图表的呈现
Web 框架
pip install django
图表
pip install pyecharts
数据库
pip install pymysql
pip install mysqlclient
pip install SQLAlchemy
见 requirements.txt
pip install -r requirements.txt
# 初始化 mysqld
mysqld --initialize-insecure --user=mysql --console
# 安装 mysqld 服务
mysqld --install
# 启动服务
net start mysql
# 设置密码
mysql -u root -p
# 创建新的数据并设置数据库编码
CREATE DATABASE 数据库名 DEFAULT CHARSET=utf8 DEFAULT COLLATE utf8_unicode_ci;
# 创建新的用户
CREATE USER 'root'@'localhost' IDENTIFIEd BY '密码';
# 数据库的管理权限给予用户
GRANT ALL PRIVILEGES on 数据库名.* TO 'root'@'localhost';
# 刷新权限,使用设置生效
FLUSH PRIVILEGES;
# 登录 mysql,连接用户为 root
mysql -u root -p
# 执行命令查看加密方式
USE MYSQL;
SELECT USER, PLUGIN FROM USER WHERE USER='root';
# 执行命令修改加密方式
ALTER USER 'root'@'localhost' IDENTIFIED WITH MYSQL_NATIVE_PASSWORD BY '密码';
# 属性权限使配置生效
FLUSH PRIVILEGES;
在 userApp/models.py 中定义。如:
class Orig(models.Model):
roam = models.CharField(max_length=20)
host = models.CharField(max_length=20)
msisdn = models.BigIntegerField()
imsi = models.BigIntegerField()
day = models.DateField()
上述字段分别为漫游地、归属地、MSISDN、IMSI、日期。
在 userApp/views.py 中定义。如:
urlpatterns = [
path('', views.main_view, name='main'),
path('maps', views.users_maps_view, name='maps'),
path('days', views.users_days_view, name='days'),
]
分别对应主页面、用户空间分布页面、用户时间分布页面;以及对应的视图函数。