/webApp

A WebApp written in Django

Primary LanguagePythonMIT LicenseMIT

项目

目录

项目需求分析

从功能需求来看

  • 需要统计本地用户漫游至全国的数量、比例以及号码
  • 需要统计异地用户漫游至本地的数量、比例以及号码
  • 针对异地号码,统计其在本地的登录天数/比例
  • 针对本地号码,统计其在异地的登陆天数/比例

从设计方面来看

  • 用 Django 作为 Web 框架构建网站,作为整个业务流程的承载
  • 用 Mysql 实现数据的存储
  • 用 Pyecharts 实现数据图表的呈现

开发环境部署

Python

Django

Web 框架

pip install django

pyecharts

图表

pip install pyecharts

pymysql

数据库

pip install pymysql
pip install mysqlclient
pip install SQLAlchemy

其他

见 requirements.txt

pip install -r requirements.txt

MySQL

Windows 下安装 mysql

# 初始化 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;

mysqlclient 连接配置

# 登录 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'),
]

分别对应主页面、用户空间分布页面、用户时间分布页面;以及对应的视图函数。

参考