我对python和javascript的基本知识还不熟悉编程。我需要以下方面的帮助。你知道吗
我在web服务器上有一个python脚本。脚本输出一个“.csv”文件。(请在下面找到脚本)
任何通过链接访问web服务器的用户都需要在web服务器中触发python脚本。一旦在web服务器中生成了csv文件,用户就可以单击链接中的按钮在其本地计算机中下载csv文件。这将在内部网中使用。你知道吗
问题:我已经设置了一个apacheweb服务器。但是我也不能在web服务器上从浏览器运行python脚本。请帮忙。你知道吗
Apache日志:[2016年11月5日星期六01:14:23.341480][cgi:错误][pid 9572:tid 936](9)错误的文件描述符:[client 127.0.0.1:49729]AH01222:不知道如何生成子进程:C:/Users/dasa17/mywebsite/花名册.py你知道吗
独立的python脚本运行良好,提供了所需的输出。请找到下面的脚本:
import os
import csv
import pymysql
import pymysql.cursors
from datetime import date
import calendar
d=date.today()
num_days = calendar.monthrange(d.year,d.month)[1]
days = [(d.year,d.month,day) for day in range(1, num_days+1)]
dayssl=["%s-%s-%s" %z for z in days] #Create a list of strings for the CSV output header
IT = pymysql.connect(host='xxxxxxx', user='xxxxx', password='xxxx',
db='xxxx')#Connect to the IT database
Others = pymysql.connect(host='xxxxx', user='xxxx', password='xxxx',
db='xxxx')#Connect to the non IT database
a=IT.cursor() # Open Cursor for IT database
b=Others.cursor()#Open Cursor for non-IT database
# Create a string to query the IT database
u='''select e.mgrntid,
(case when e.verticalorg = 27 then 'HR'
when e.verticalorg = 2 then 'IT'
when e.verticalorg = 30 then 'GBS'
when e.verticalorg = 4 then 'GBS - Technical'
when e.verticalorg = 5 then 'DPAS'
when e.verticalorg = 6 then 'VIPR'
when e.verticalorg = 6 then 'VMAX'
when e.verticalorg = 6 then 'ASD+ SRM'
when e.verticalorg = 6 then 'VNX'
end) as verticalorg,s.employee_id,
MAX(CASE WHEN s.shift_date=CAST(DATE_FORMAT(NOW() ,'%Y-%m-01') as DATE) THEN s.forecasted_shift ELSE NULL END) AS '2016-10-01',
MAX(CASE WHEN s.shift_date=CAST(DATE_FORMAT(NOW() ,'%Y-%m-02') as DATE) THEN s.forecasted_shift ELSE NULL END) AS '2016-10-02',
MAX(CASE WHEN s.shift_date=CAST(DATE_FORMAT(NOW() ,'%Y-%m-03') as DATE) THEN s.forecasted_shift ELSE NULL END) AS '2016-10-03',
MAX(CASE WHEN s.shift_date=CAST(DATE_FORMAT(NOW() ,'%Y-%m-04') as DATE)THEN s.forecasted_shift ELSE NULL END) AS '2016-10-04' ,
MAX(CASE WHEN s.shift_date=CAST(DATE_FORMAT(NOW() ,'%Y-%m-05') as DATE) THEN s.forecasted_shift ELSE NULL END) AS '2016-10-05',
MAX(CASE WHEN s.shift_date=CAST(DATE_FORMAT(NOW() ,'%Y-%m-06') as DATE) THEN s.forecasted_shift ELSE NULL END) AS '2016-10-06',
MAX(CASE WHEN s.shift_date=CAST(DATE_FORMAT(NOW() ,'%Y-%m-07') as DATE) THEN s.forecasted_shift ELSE NULL END) AS '2016-10-07',
MAX(CASE WHEN s.shift_date=CAST(DATE_FORMAT(NOW() ,'%Y-%m-08') as DATE) THEN s.forecasted_shift ELSE NULL END) AS '2016-10-08',
MAX(CASE WHEN s.shift_date=CAST(DATE_FORMAT(NOW() ,'%Y-%m-09') as DATE) THEN s.forecasted_shift ELSE NULL END) AS '2016-10-09',
MAX(CASE WHEN s.shift_date=CAST(DATE_FORMAT(NOW() ,'%Y-%m-10') as DATE) THEN s.forecasted_shift ELSE NULL END) AS '2016-10-10',
MAX(CASE WHEN s.shift_date=CAST(DATE_FORMAT(NOW() ,'%Y-%m-11') as DATE) THEN s.forecasted_shift ELSE NULL END) AS '2016-10-11',
MAX(CASE WHEN s.shift_date=CAST(DATE_FORMAT(NOW() ,'%Y-%m-12') as DATE) THEN s.forecasted_shift ELSE NULL END) AS '2016-10-12',
MAX(CASE WHEN s.shift_date=CAST(DATE_FORMAT(NOW() ,'%Y-%m-13') as DATE) THEN s.forecasted_shift ELSE NULL END) AS '2016-10-13',
MAX(CASE WHEN s.shift_date=CAST(DATE_FORMAT(NOW() ,'%Y-%m-14') as DATE) THEN s.forecasted_shift ELSE NULL END) AS '2016-10-14',
MAX(CASE WHEN s.shift_date=CAST(DATE_FORMAT(NOW() ,'%Y-%m-15') as DATE) THEN s.forecasted_shift ELSE NULL END) AS '2016-10-15',
MAX(CASE WHEN s.shift_date=CAST(DATE_FORMAT(NOW() ,'%Y-%m-16') as DATE) THEN s.forecasted_shift ELSE NULL END) AS '2016-10-16',
MAX(CASE WHEN s.shift_date=CAST(DATE_FORMAT(NOW() ,'%Y-%m-17') as DATE) THEN s.forecasted_shift ELSE NULL END) AS '2016-10-17',
MAX(CASE WHEN s.shift_date=CAST(DATE_FORMAT(NOW() ,'%Y-%m-18') as DATE) THEN s.forecasted_shift ELSE NULL END) AS '2016-10-18',
MAX(CASE WHEN s.shift_date=CAST(DATE_FORMAT(NOW() ,'%Y-%m-19') as DATE) THEN s.forecasted_shift ELSE NULL END) AS '2016-10-19',
MAX(CASE WHEN s.shift_date=CAST(DATE_FORMAT(NOW() ,'%Y-%m-20') as DATE) THEN s.forecasted_shift ELSE NULL END) AS '2016-10-20',
MAX(CASE WHEN s.shift_date=CAST(DATE_FORMAT(NOW() ,'%Y-%m-21') as DATE) THEN s.forecasted_shift ELSE NULL END) AS '2016-10-21',
MAX(CASE WHEN s.shift_date=CAST(DATE_FORMAT(NOW() ,'%Y-%m-22') as DATE) THEN s.forecasted_shift ELSE NULL END) AS '2016-10-22',
MAX(CASE WHEN s.shift_date=CAST(DATE_FORMAT(NOW() ,'%Y-%m-23') as DATE) THEN s.forecasted_shift ELSE NULL END) AS '2016-10-23',
MAX(CASE WHEN s.shift_date=CAST(DATE_FORMAT(NOW() ,'%Y-%m-24') as DATE) THEN s.forecasted_shift ELSE NULL END) AS '2016-10-24',
MAX(CASE WHEN s.shift_date=CAST(DATE_FORMAT(NOW() ,'%Y-%m-25') as DATE) THEN s.forecasted_shift ELSE NULL END) AS '2016-10-25',
MAX(CASE WHEN s.shift_date=CAST(DATE_FORMAT(NOW() ,'%Y-%m-26') as DATE) THEN s.forecasted_shift ELSE NULL END) AS '2016-10-26',
MAX(CASE WHEN s.shift_date=CAST(DATE_FORMAT(NOW() ,'%Y-%m-27') as DATE) THEN s.forecasted_shift ELSE NULL END) AS '2016-10-27',
MAX(CASE WHEN s.shift_date=CAST(DATE_FORMAT(NOW() ,'%Y-%m-28') as DATE) THEN s.forecasted_shift ELSE NULL END) AS '2016-10-28',
MAX(CASE WHEN s.shift_date=CAST(DATE_FORMAT(NOW() ,'%Y-%m-29') as DATE) THEN s.forecasted_shift ELSE NULL END) AS '2016-10-29',
MAX(CASE WHEN s.shift_date=CAST(DATE_FORMAT(NOW() ,'%Y-%m-30') as DATE) THEN s.forecasted_shift ELSE NULL END) AS '2016-10-30',
MAX(CASE WHEN s.shift_date=CAST(DATE_FORMAT(NOW() ,'%Y-%m-31') as DATE) THEN s.forecasted_shift ELSE NULL END) AS '2016-10-31'
from shift_roster s LEFT JOIN tbl_employeedetails e on s.employee_id=e.empntid where s.shift_date >= CAST(DATE_FORMAT(NOW() ,'%Y-%m- 01') as DATE) GROUP BY s.employee_id ORDER BY e.verticalorg'''
a.execute(u)#Execute the query in the database
#Create a string for non IT database
v='''select e.mgrntid,
(case when e.verticalorg = 18 then 'CS'
when e.verticalorg = 19 then 'PS'
when e.verticalorg = 25 then 'MS'
when e.verticalorg = 26 then 'PE'
when e.verticalorg = 27 then 'HR'
when e.verticalorg = 28 then 'RSA'
end) as verticalorg,s.employee_id,
MAX(CASE WHEN s.shift_date=CAST(DATE_FORMAT(NOW() ,'%Y-%m-01') as DATE) THEN s.forecasted_shift ELSE NULL END) AS '2016-10-01',
MAX(CASE WHEN s.shift_date=CAST(DATE_FORMAT(NOW() ,'%Y-%m-02') as DATE) THEN s.forecasted_shift ELSE NULL END) AS '2016-10-02',
MAX(CASE WHEN s.shift_date=CAST(DATE_FORMAT(NOW() ,'%Y-%m-03') as DATE) THEN s.forecasted_shift ELSE NULL END) AS '2016-10-03',
MAX(CASE WHEN s.shift_date=CAST(DATE_FORMAT(NOW() ,'%Y-%m-04') as DATE)THEN s.forecasted_shift ELSE NULL END) AS '2016-10-04' ,
MAX(CASE WHEN s.shift_date=CAST(DATE_FORMAT(NOW() ,'%Y-%m-05') as DATE) THEN s.forecasted_shift ELSE NULL END) AS '2016-10-05',
MAX(CASE WHEN s.shift_date=CAST(DATE_FORMAT(NOW() ,'%Y-%m-06') as DATE) THEN s.forecasted_shift ELSE NULL END) AS '2016-10-06',
MAX(CASE WHEN s.shift_date=CAST(DATE_FORMAT(NOW() ,'%Y-%m-07') as DATE) THEN s.forecasted_shift ELSE NULL END) AS '2016-10-07',
MAX(CASE WHEN s.shift_date=CAST(DATE_FORMAT(NOW() ,'%Y-%m-08') as DATE) THEN s.forecasted_shift ELSE NULL END) AS '2016-10-08',
MAX(CASE WHEN s.shift_date=CAST(DATE_FORMAT(NOW() ,'%Y-%m-09') as DATE) THEN s.forecasted_shift ELSE NULL END) AS '2016-10-09',
MAX(CASE WHEN s.shift_date=CAST(DATE_FORMAT(NOW() ,'%Y-%m-10') as DATE) THEN s.forecasted_shift ELSE NULL END) AS '2016-10-10',
MAX(CASE WHEN s.shift_date=CAST(DATE_FORMAT(NOW() ,'%Y-%m-11') as DATE) THEN s.forecasted_shift ELSE NULL END) AS '2016-10-11',
MAX(CASE WHEN s.shift_date=CAST(DATE_FORMAT(NOW() ,'%Y-%m-12') as DATE) THEN s.forecasted_shift ELSE NULL END) AS '2016-10-12',
MAX(CASE WHEN s.shift_date=CAST(DATE_FORMAT(NOW() ,'%Y-%m-13') as DATE) THEN s.forecasted_shift ELSE NULL END) AS '2016-10-13',
MAX(CASE WHEN s.shift_date=CAST(DATE_FORMAT(NOW() ,'%Y-%m-14') as DATE) THEN s.forecasted_shift ELSE NULL END) AS '2016-10-14',
MAX(CASE WHEN s.shift_date=CAST(DATE_FORMAT(NOW() ,'%Y-%m-15') as DATE) THEN s.forecasted_shift ELSE NULL END) AS '2016-10-15',
MAX(CASE WHEN s.shift_date=CAST(DATE_FORMAT(NOW() ,'%Y-%m-16') as DATE) THEN s.forecasted_shift ELSE NULL END) AS '2016-10-16',
MAX(CASE WHEN s.shift_date=CAST(DATE_FORMAT(NOW() ,'%Y-%m-17') as DATE) THEN s.forecasted_shift ELSE NULL END) AS '2016-10-17',
MAX(CASE WHEN s.shift_date=CAST(DATE_FORMAT(NOW() ,'%Y-%m-18') as DATE) THEN s.forecasted_shift ELSE NULL END) AS '2016-10-18',
MAX(CASE WHEN s.shift_date=CAST(DATE_FORMAT(NOW() ,'%Y-%m-19') as DATE) THEN s.forecasted_shift ELSE NULL END) AS '2016-10-19',
MAX(CASE WHEN s.shift_date=CAST(DATE_FORMAT(NOW() ,'%Y-%m-20') as DATE) THEN s.forecasted_shift ELSE NULL END) AS '2016-10-20',
MAX(CASE WHEN s.shift_date=CAST(DATE_FORMAT(NOW() ,'%Y-%m-21') as DATE) THEN s.forecasted_shift ELSE NULL END) AS '2016-10-21',
MAX(CASE WHEN s.shift_date=CAST(DATE_FORMAT(NOW() ,'%Y-%m-22') as DATE) THEN s.forecasted_shift ELSE NULL END) AS '2016-10-22',
MAX(CASE WHEN s.shift_date=CAST(DATE_FORMAT(NOW() ,'%Y-%m-23') as DATE) THEN s.forecasted_shift ELSE NULL END) AS '2016-10-23',
MAX(CASE WHEN s.shift_date=CAST(DATE_FORMAT(NOW() ,'%Y-%m-24') as DATE) THEN s.forecasted_shift ELSE NULL END) AS '2016-10-24',
MAX(CASE WHEN s.shift_date=CAST(DATE_FORMAT(NOW() ,'%Y-%m-25') as DATE) THEN s.forecasted_shift ELSE NULL END) AS '2016-10-25',
MAX(CASE WHEN s.shift_date=CAST(DATE_FORMAT(NOW() ,'%Y-%m-26') as DATE) THEN s.forecasted_shift ELSE NULL END) AS '2016-10-26',
MAX(CASE WHEN s.shift_date=CAST(DATE_FORMAT(NOW() ,'%Y-%m-27') as DATE) THEN s.forecasted_shift ELSE NULL END) AS '2016-10-27',
MAX(CASE WHEN s.shift_date=CAST(DATE_FORMAT(NOW() ,'%Y-%m-28') as DATE) THEN s.forecasted_shift ELSE NULL END) AS '2016-10-28',
MAX(CASE WHEN s.shift_date=CAST(DATE_FORMAT(NOW() ,'%Y-%m-29') as DATE) THEN s.forecasted_shift ELSE NULL END) AS '2016-10-29',
MAX(CASE WHEN s.shift_date=CAST(DATE_FORMAT(NOW() ,'%Y-%m-30') as DATE) THEN s.forecasted_shift ELSE NULL END) AS '2016-10-30',
MAX(CASE WHEN s.shift_date=CAST(DATE_FORMAT(NOW() ,'%Y-%m-31') as DATE) THEN s.forecasted_shift ELSE NULL END) AS '2016-10-31'
from shift_roster s LEFT JOIN tbl_employeedetails e on s.employee_id=e.empntid where s.shift_date >= CAST(DATE_FORMAT(NOW() ,'%Y-%m- 01') as DATE) GROUP BY s.employee_id ORDER BY e.verticalorg'''
b.execute(v) #Execute the query in the non-IT database
result_IT=a.fetchall() #Fetch all data from Curor for IT database
result_Others=b.fetchall()#Fetch all data from Curor for non IT database
Filename = os.getenv("HOMEDRIVE") + os.getenv("HOMEPATH") + "\\Desktop\RosterUnified.csv" # Create/write a CSV file in the user's desktop
d=open(Filename, 'w',newline='\n') #Format for CSV input
c = csv.writer(d)
c.writerow(["Manager NT ID"," Vertical Org","Employee ID" ]+ dayssl)# Write the header list of strings in the first row
for row in result_IT:
c.writerow(row)#Write output for IT to csv
d.close()
e=open(Filename, 'a',newline='\n')
f= csv.writer(e)
for row in result_Others:
f.writerow(row)# Append to the existing CSV file with non IT data
e.close()#Close the CSV file
a.close()#Close IT cursor
b.close()#Close non IT cursor
目前没有回答
相关问题 更多 >
编程相关推荐