python-Flask框架用ajax对数据表实现简单的增删改查
以下为实现效果
以下为代码实现
Blueprint其实本身只是对view上的接口进行了注册,然后整体挂载在app上,Blueprint本身的目的就是组织多模块的平行共存,避免直接在app上注册view,其实更多的只是方便开发和代码的维护,因为最终所有的views上的接口都仍然是直接挂载在app上,其实对应整个应用来说,没有什么明显的区别。
Flask 中的Blueprint不是一个可插拨的应用,因为它不是一个真正的应用,而是一套可以注册 在应用中的操作,并且可以注册多次。
#app.py代码实现
from flask import Flask,render_template,request,Response,session,url_for
import config
from config_class import *
from datetime import timedelta
from _md5 import MD5Type
import hashlib
from controllor.usercontroller import usercontroller
from controllor.jobcontroller import jobcontroller
app = Flask(__name__)
app.config['DEBUG']=True
app.config['PERMANENT_SESSION_LIFETIME']=timedelta(minutes=30)
#使用class定义配置
app.config.from_object(DebugConfig)
# 使用config 文件定义配置
app.config.from_object(config)
app.register_blueprint(usercontroller)
#绑定路由
app.register_blueprint(jobcontroller)
@app.route('/') #URL路由
def index():
return render_template('index.html')
if __name__ == '__main__':
app.run(host=app.config['SERVER_ADDR'],port=app.config['SERVER_PORT'],debug=True)
#controller文件夹下-jobcontroller.py实现代码
from flask import Blueprint,Flask,render_template,request,Response,session,url_for,jsonify
from service.jobservice import JobService
from entity.job import Job
import json
jobService=JobService() #引入服务层
jobcontroller=Blueprint('jobcontroller',__name__)
@jobcontroller.route('/goajaxjob.do',methods=['POST','GET'])
def goAjaxJob():
return render_template('systeminfo/jobajax.html')
pass
@jobcontroller.route('/ajaxjob.do',methods=['POST','GET'])
def getJobInfo():
jobData = request.get_data()
jobDict = json.loads(jobData)
tData = {
}
job=Job()
jobId=int(jobDict.get('jobId'))
job.jobId=jobId
job.jobPosition=jobDict.get('jobPosition')
job.jobCompany=jobDict.get('jobCompany')
job.jobSalary=jobDict.get('jobSalary')
job.jobCity=jobDict.get('jobCity')
currentPage = int(jobDict.get('currentPage'))
pageSize = int(jobDict.get('pageSize'))
opr = jobDict.get('opr')
delResult = 0
if opr == 'del':
delResult = jobService.removeJob(jobId)
pass
elif opr == 'update':
tJob = jobService.findJobByJobId(jobId)
tData['jobId'] = tJob.jobId
tData['jobPosition'] = tJob.jobPosition
tData['jobCompany'] = tJob.jobCompany
tData['jobSalary'] = tJob.jobSalary
tData['jobCity'] = tJob.jobCity
returnData = {
'code': 1, 'jobData': tData, 'pageSize': pageSize, 'currentPage': currentPage, 'opr': 'update'}
return json.dumps(returnData)
elif opr == 'submitUpdate':
jobService.updateJob(job)
elif opr=='submitadd':
jobService.addJob(job,pageSize, currentPage)
result = jobService.findPageJobList(job, pageSize, currentPage)
counts = jobService.countJobs(job)
totalPage = 0
if (counts % pageSize == 0):
totalPage = counts // pageSize
else:
totalPage = counts // pageSize + 1
pass
returnData = {
'code': 1, 'jobData': result, 'pageSize': pageSize, 'currentPage': currentPage,
'totalPage': totalPage, 'delcode': delResult, 'opr': 'search', 'counts': counts}
return json.dumps(returnData)
pass
#service文件夹下-jobservice.py实现代码
from dao.jobdao import JobDao
from entity.job import Job
class JobService():
def findPageJobList(self,job,pageSize,currentPage):
jobDao=JobDao()
return jobDao.findPageJobList(job,pageSize,currentPage)
pass
def removeJob(self,jobId):
jobDao=JobDao()
return jobDao.removeJob(jobId)
pass
def updateJob(self,job):
jobDao=JobDao()
return jobDao.updateJob(job)
pass
def addJob(self,job,pageSize,currentPage):
jobDao = JobDao()
return jobDao.addJob(job)
pass
def countJobs(self,job):
jobDao = JobDao()
return jobDao.countJobs(job)[0]
pass
def findJobByJobId(self,jobId):
jobDao=JobDao()
result=jobDao.findJobByJobId(jobId)
job=None
if result:
job=Job()
job.jobId=result[0][0]
job.jobPosition=result[0][1]
job.jobCompany=result[0][2]
job.jobSalary=result[0][4]
job.jobCity=result[0][12]
pass
return job
pass
pass
#dao层文件夹-jobdao.py代码实现
from .basedao import BaseDao
class JobDao(BaseDao):
def findPageJobList(self,job,pageSize,currentPage):