配置Apache服务器实现浏览器访问python程序
Posted AI小精灵
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了配置Apache服务器实现浏览器访问python程序相关的知识,希望对你有一定的参考价值。
原因一:python是一种说人话的语言;
1.开发者不需要关注底层,降低了开发门槛,正所谓小学生都在用python,玩笑话!
2.语法极其简单直观;
3.表达形式一致。
对于原因一,这篇文章利用程序员们最熟悉的程序做了几种常见语言的对比。
c语言Hello World代码:
Java语言Hello World代码:
Python语言Hello World代码:
原文描述道: "仅仅是一个Hello World程序,就能看出区别了,是不是?"(虽然我不以为然)。
原因二:强大的AI支持库;
1.矩阵运算(这点与matlab有相似之处);
2.ML(机器学习)模型(比如一个简单的逻辑回归就几行代码可以搞定);
3.完美的图表解决方案(python生成dashboard上的各种图形表格,是非常简单的事情)。
原因三:规模效应(听起来很抽象!)。
"根据以高收入国家Stack Overflow问题阅读量为基础的主要编程语言趋势分析统计,可以看出,近年来,Pyhotn已经力压Java和javascript,成为目前发达国家增长最快的编程语言。"(这里为Javascript打一下广告,Javascript在众多编程语言中虽不是一马当先,当也可谓是后起之秀;特别是随着移动互联网的普及,Javascript的地位和使用量都在不断上升,从目前来看,javascript语言的生态称得上是百花齐放,node.js、vue.js、jquery.js...等等编程框架层出不穷。另外,当今中国使用最频繁的社交软件—微信出品的小程序,其中大量代码使用javascript。)
以上描述了python语言火爆的几点原因,接下来说说python的web编程。
大家都知道,python由于以上描述的几点原因,被广大的AI从业者视为自身的拿手好戏,其实,python是一门典型的解释型语言,其不至于训练神经网络等用途,web应用也是python的另一"杀手锏"(有点夸张)。接下来就带你进入python的web编程。
首先,假设你对http、https、tcp等协议的运行机理有所了解,今天所讲内容基于如下的开发环境,并假设你已搭建此环境。
运行环境:Win10+Python3.6+Apache2.2+CGI+Chrome浏览器,环境很简单,不需要花费一分钱,这是重点。
步骤一:配置apache服务器运行CGI模式,具体过程表述如下:
1.在apache安装目录下找到其配置文件httpd.conf:
2.利用记事本或sublime(强烈推荐)打开该文件并找到以下内容:
修改ScriptAlias /cgi-bin/ "E:comcgibin"中的"E:comcgibin"为你自己的cgi directory。
接下来找到:
将<Directory后的目录修改为与之前的相同,并修改Options后的参数为ExecCGI。
最后,找到:(如果没有就直接添加此句)
如果找到,则添加.py类型的文件即可,如果没有此句,直接添加即可。
至此,apache服务器配置完毕,接下来让我们进入python的web编程之旅吧!
首先,使用sublime创建一个文本文件,并命名为index.py,将其保存到apache的服务器根目录即可,具体内容如下:
怎么样?是不是超级简单,接下来来点不一样的,动态web编程,连接mysql数据库,生成json数据格式显示。具体代码如下:
#!C:UsersBX-yyAppDataLocalProgramsPythonPython36python.exe
print ("Content-type: text/plain")
print ("")
print ("Hello Word!")
import MySQLdb
import sys
import time
import json
#import urllib2
# 打开数据库连接
db = MySQLdb.connect("localhost","root","19921020","cxlib",charset='utf8' )
cursor = db.cursor()
print ("开始数据库操作")
sql = "SELECT * FROM ci_goods;"
try:
cursor.execute(sql)
results = cursor.fetchall()
for row in results:
fname = row[0]
lname = row[1]
age = row[2]
sex = row[3]
income = row[4]
print (fname,lname,age,sex,income," ")
#print(json.dumps(results))
except:
print ("数据库查询失败")
text="数据库读取操作结束"
print (text)
db.close()
打开浏览器查看运行结果如下:
由于以上格式的输出是python的print函数直接输出的对象信息,不便于网络里的数据传输,下面将查询结果json序列化,具体代码改动如下:
即取消print(json.dumps(results))前面的注释,打开浏览器查看运行结果如下:
是不是看起来太乱,可读性极差,哈哈!这就是通过json序列化后的结果,别小看它哦!在进行数据传输和交换解释的时候可是很有用的哦。
最后,想把此文件做成python的API程序,通过ajax的方法进行访问,于是乎,修改代码如下:
#!C:UsersBX-yyAppDataLocalProgramsPythonPython36python.exe
print ("Content-type: text/plain")
print ("")
print ("Hello Word!")
import MySQLdb
import sys
import time
import json
def queryDb():
db = MySQLdb.connect("localhost","root","19921020","cxlib",charset='utf8' )
cursor = db.cursor()
print ("开始数据库操作")
sql = "SELECT * FROM ci_goods;"
try:
cursor.execute(sql)
results = cursor.fetchall()
for row in results:
fname = row[0]
lname = row[1]
age = row[2]
sex = row[3]
income = row[4]
#print (fname,lname,age,sex,income," ")
print(json.dumps(results))
except:
print ("数据库查询失败")
text="数据库读取操作结束"
print (text)
db.close()
urlPara=True
if urlPara==True:
queryDb()
else:
retInfo={'error':False,'data':'没有此类查询'}
print(json.dumps(retInfo))
前端通过javascript的jquery框架的ajax方法请求数据服务,具体代码如下:
打开浏览器,访问index.html验证结果如下:
从结果可以看到,中文显示乱码,这不是大问题,只要在python文件开头指定文件编码格式为utf-8即可解决。
至此,配置apache服务器实现浏览器访问python程序到此结束。
接下来,小编将致力于后台采用基于tensorflow的深度学习框架训练模型,前端使用javascript将模型和处理结果可视化,是不是很有趣,如果你对这方面也感兴趣,欢迎后台留言联系我!
以上是关于配置Apache服务器实现浏览器访问python程序的主要内容,如果未能解决你的问题,请参考以下文章