基于Django框架的事件追踪后台管理系统

1,332 阅读3分钟

一、Python基础知识 

Python 是由 Guido van Rossum 在八十年代末和九十年代初,在荷兰国家数学和计算机科学 研究所设计出来的,现在是由一个核心开发团队在维护。

Python 对初级程序员而言,是一种伟大的语言,它支持广泛的应用程序开发,从简单的文字处理到 WWW 浏览器再到游戏。在开发过程中没有了编译的环节,可以在一个 Python 提示符,直接互动执行你写的程序 ;Python 有相对较少的关键字,结构简单,易于学习,最大的优势之一是有丰富的跨平台的库, 提供所有主要的商业数据库的接口。相比 shell 脚本,Python 提供了一个更好的结构,且支持大型程序。

Python 语言与C 和 Java 等语言有许多相似之处。最大的区别就是,Python 的代码块不使用大括号({})来控制类,函数以及其他逻辑判断,而是用缩进来写模块,所有代码块语句必须包含相同的缩进空白数量。 Python 中的变量不需要声明,变量的赋值操作既是变量声明和定义的过程。有五个标准的数据类型: 

Numbers(数字)          //  var1 = 1
String(字符串)           //   var1 = 'Hello World!'
List(列表)                   // list1 = ['physics', 'chemistry', 1997, 2000]
Tuple(元组)               // tup1 = ('physics', 'chemistry', 1997, 2000)
Dictionary(字典)       // dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}

 Python 的元组与列表类似,不同之处在于元组的元素不能修改。元组使用小括号,列表使用方括号。 

# Python 函数定义
def sum( arg1, arg2 ):
   # 返回2个参数的和."
   total = arg1 + arg2
   print "Inside the function : ", total
   return total;
 
模块是一个保存了 Python 代码的文件。模块能定义函数,类和变量。模块里也能包含可执行的代码。
想使用 Python 源文件,只需在另一个源文件里执行 
import 语句: import module1[, module2[,... moduleN]
# 导入模块
import support
# 现在可以调用模块里包含的函数了
support.print_func("Zara")

二、Django框架介绍

Django 是一个由 Python 编写的一个开放源代码的 Web 应用框架。使用 Django,只要很少的代码,Python 的程序开发人员就可以轻松地完成一个正式网站所需要的大部分内容,并进一步开发出全功能的 Web 服务 。Django 社区使用另一种形式的 MVC 模式。在 Django 中,它称为模型-模板-视图,简称 MTV。数据模型保持不变,但视图在 Django 中是模板,因为模板用来定义用户可见的内容。最后,Django 中的视图表示视图函数,它们组成控制器的逻辑。这与 MVC 完全相同,但仅仅是对不同角色进行了不同的解释。 

三、使用Djiango框架搭建工程

Django 自带admin 自动后台管理应用,每个Web站点都要用到它。 使用 django-admin.py 来创建 HelloWorld 项目:

django-admin.py startproject HelloWorld

自动生成项目的目录结构

|-- HelloWorld
|   |-- __init__.py
|   |-- asgi.py
|   |-- settings.py
|   |-- urls.py
|   `-- wsgi.py                           
`-- manage.py  

------settings.py
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
] 

HelloWorld/HelloWorld/views.py 文件代码: 

from django.http import HttpResponse

def hello(request):
    return HttpResponse("Hello world ! ") 

HelloWorld/HelloWorld/urls.py 文件代码: 

from django.urls import path
from . import views

urlpatterns = [
    path('hello/', views.hello),
]

HelloWorld/HelloWorld/views.py 文件代码: 

from django.http import HttpResponse

def hello(request):
    return HttpResponse("Hello world ! ")

HelloWorld/HelloWorld/urls.py 文件代码:
from django.urls import path
from . import views

urlpatterns = [
    path('hello/', views.hello),
]

四、编写响应HTTP请求代码

------views.py文件 

import simplejson as simplejson
from django.http import HttpResponse, JsonResponse
def trackStartup(request):
    if request.method == 'POST':
        json = request.POST
        if dict.__len__(json) == 0:
            json = simplejson.loads(request.body)
        try:
            startup_bean = startupEvent(uuid=json['uuid'], appName=json['appName'])
        except Exception as err:
            responseData['code'] = 400
            responseData['message'] = str(err)
        else:
            startup_bean.save()
            responseData['code'] = 200
            responseData['message'] = 'success'
        return JsonResponse(responseData)

------urls.py 文件

from django.urls import path
from TrackManager import views
urlpatterns = [
    path('', views.index, name='index'),
]

------admin.py文件 

from django.contrib import admin
from TrackManager.models import startupEvent
# Register your models here.
class startupAdmin(admin.ModelAdmin):
    list_display = ('id', 'eventType', 'eventDesc', 'uuid', 'appName', 'toggleTime')
admin.site.register(startupEvent, startupAdmin)

------models.py文件 

from django.db import models

class startupEvent(models.Model):
    eventType = models.CharField("事件类型", max_length=20, default='startup')
    eventDesc = models.CharField("事件描述", max_length=60, default='软件启动')
    appName = models.CharField("应用名称", max_length=40)
    uuid = models.CharField("用户ID", max_length=120)
    toggleTime = models.DateTimeField('触发时间', auto_now_add=True)

五、运行后台管理系统 

启动服务器: python3 manage.py runserver 10.8.62.58:8000 

在浏览器中输入URL: 10.8.62.58:8000/admin/