配置Apache服务器实现浏览器访问python程序

Posted AI小精灵

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了配置Apache服务器实现浏览器访问python程序相关的知识,希望对你有一定的参考价值。

    原因一:python是一种说人话的语言;

    1.开发者不需要关注底层,降低了开发门槛,正所谓小学生都在用python,玩笑话!

    2.语法极其简单直观;

    3.表达形式一致。

    对于原因一,这篇文章利用程序员们最熟悉的程序做了几种常见语言的对比。

    c语言Hello World代码:

    Java语言Hello World代码:


配置Apache服务器实现浏览器访问python程序

    Python语言Hello World代码:


配置Apache服务器实现浏览器访问python程序

   原文描述道: "仅仅是一个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:

配置Apache服务器实现浏览器访问python程序

    2.利用记事本或sublime(强烈推荐)打开该文件并找到以下内容:

配置Apache服务器实现浏览器访问python程序

    修改ScriptAlias /cgi-bin/ "E:comcgibin"中的"E:comcgibin"为你自己的cgi directory。

    接下来找到:

配置Apache服务器实现浏览器访问python程序

    将<Directory后的目录修改为与之前的相同,并修改Options后的参数为ExecCGI。

    最后,找到:(如果没有就直接添加此句)

配置Apache服务器实现浏览器访问python程序

    如果找到,则添加.py类型的文件即可,如果没有此句,直接添加即可。

    至此,apache服务器配置完毕,接下来让我们进入python的web编程之旅吧!

    首先,使用sublime创建一个文本文件,并命名为index.py,将其保存到apache的服务器根目录即可,具体内容如下:

    

配置Apache服务器实现浏览器访问python程序

配置Apache服务器实现浏览器访问python程序

    怎么样?是不是超级简单,接下来来点不一样的,动态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()

    打开浏览器查看运行结果如下:

配置Apache服务器实现浏览器访问python程序

    由于以上格式的输出是python的print函数直接输出的对象信息,不便于网络里的数据传输,下面将查询结果json序列化,具体代码改动如下:

配置Apache服务器实现浏览器访问python程序

    即取消print(json.dumps(results))前面的注释,打开浏览器查看运行结果如下:

配置Apache服务器实现浏览器访问python程序

    是不是看起来太乱,可读性极差,哈哈!这就是通过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程序的主要内容,如果未能解决你的问题,请参考以下文章

apache目录浏览可以下载整个目录吗

Apache(httpd)配置--防盗链配置和访问控制

86.Apache(httpd)配置--防盗链配置和访问控制

快速部署Apache服务静态网站

[APACHE]服务器配置实现局域网其他电脑可访问

Nginx 配置 URL 重写