python CGI编程、smtp邮件发送、pygame项目创建

一、GI编程:
运行在服务器上的一段网关接口的程序(如:HTTP服务器,提供同客户端HTML页面的接口).
CGI的运行可以通过网页的链接或者URL:
1、使用你的浏览器访问URL并连接到HTTP web 服务器。
2、Web服务器接收到请求信息后会解析URL,并查找访问的文件在服务器上是否存在,如果存在返回文件的内容,否则返回错误信息。
3、浏览器从服务器上接收信息,并显示接收的文件或者错误信息。
CGI程序可以是Python脚本,PERL脚本,SHELL脚本,C或者C++程序等。

Web服务器支持及配置
    在你进行CGI编程前,确保您的Web服务器支持CGI及已经配置了CGI的处理程序。

    Apache 支持CGI 配置:

    设置好CGI目录:

    ScriptAlias /cgi-bin/ /var/www/cgi-bin/
    所有的HTTP服务器执行CGI程序都保存在一个预先配置的目录。这个目录被称为CGI目录,并按照惯例,它被命名为/var/www/cgi-bin目录。

    CGI文件的扩展名为.cgi,python也可以使用.py扩展名。

    默认情况下,Linux服务器配置运行的cgi-bin目录中为/var/www。

    如果你想指定其他运行CGI脚本的目录,可以修改httpd.conf配置文件,如下所示:

    
       AllowOverride None
       Options +ExecCGI
       Order allow,deny
       Allow from all
    
    在 AddHandler 中添加 .py 后缀,这样我们就可以访问 .py 结尾的 python 脚本文件:

    AddHandler cgi-script .cgi .pl .py    
CGI环境变量:
    所有的CGI程序都接收以下的环境变量,这些变量在CGI程序中发挥了重要的作用:

    变量名:	             描述:
    
    
    CONTENT_TYPE	       这个环境变量的值指示所传递来的信息的MIME类型。目前,环境变量CONTENT_TYPE一般都是:application/x-www-form-urlencoded,           他表示数据来自于HTML表单。
    CONTENT_LENGTH	       如果服务器与CGI程序信息的传递方式是POST,这个环境变量即使从标准输入STDIN中可以读到的有效数据的字节数。           这个环境变量在读取所输入的数据时必须使用。
    HTTP_COOKIE	           客户机内的 COOKIE 内容。
    HTTP_USER_AGENT	       提供包含了版本数或其他专有数据的客户浏览器信息。
    PATH_INFO	           这个环境变量的值表示紧接在CGI程序名之后的其他路径信息。它常常作为CGI程序的参数出现。
    QUERY_STRING	       如果服务器与CGI程序信息的传递方式是GET,这个环境变量的值即使所传递的信息。这个信息经跟在CGI程序名的后面,两者中间用一个问号'?'分隔。
    REMOTE_ADDR	           这个环境变量的值是发送请求的客户机的IP地址,例如上面的192.168.1.67。这个值总是存在的。而且它是Web客户机需要提供给Web服务器的唯一标识, 可以在CGI程序中用它来区分不同的Web客户机。
    REMOTE_HOST	           这个环境变量的值包含发送CGI请求的客户机的主机名。如果不支持你想查询,则无需定义此环境变量。
    REQUEST_METHOD	       提供脚本被调用的方法。对于使用 HTTP/1.0 协议的脚本,仅 GET 和 POST 有意义。
    SCRIPT_FILENAME	CGI    脚本的完整路径
    SCRIPT_NAME	CGI        脚本的的名称
    SERVER_NAME	           这是你的 WEB 服务器的主机名、别名或IP地址。
    SERVER_SOFTWARE	       这个环境变量的值包含了调用CGI程序的HTTP服务器的名称和版本号。例如,上面的值为Apache/2.2.14(Unix)

二、smtp 邮件发送:
由一组源地址邮件传送到目的地址的邮件规则;
import smtplib
smtpObj = smtplib.SMTP( [host [, port [, local_hostname]]] )
参数说明:

    host: SMTP 服务器主机。 你可以指定主机的ip地址或者域名如:runoob.com,这个是可选参数。
    port: 如果你提供了 host 参数, 你需要指定 SMTP 服务使用的端口号,一般情况下SMTP端口号为25。
    local_hostname: 如果SMTP在你的本机上,你只需要指定服务器地址为 localhost 即可。
    python 邮件发送:SMTP.sendmall(from_addr,to_addrs,msg[,mall_options,rcpt_options)
    import smtplib

实例:
from email.mime.text import MIMEText
from email.header import Header

# 第三方 SMTP 服务
mail_host="smtp.XXX.com"  #设置服务器
mail_user="XXXX"    #用户名
mail_pass="XXXXXX"   #口令 
 
 
sender = '[email protected]'
receivers = ['[email protected]']  # 接收邮件,可设置为你的QQ邮箱或者其他邮箱
 
message = MIMEText('Python 邮件发送测试...', 'plain', 'utf-8')
message['From'] = Header("菜鸟教程", 'utf-8')
message['To'] =  Header("测试", 'utf-8')
 
subject = 'Python SMTP 邮件测试'
message['Subject'] = Header(subject, 'utf-8')
 
 
try:
    smtpObj = smtplib.SMTP() 
    smtpObj.connect(mail_host, 25)    # 25 为 SMTP 端口号
    smtpObj.login(mail_user,mail_pass)
    smtpObj.sendmail(sender, receivers, message.as_string())
    print ("邮件发送成功")
except smtplib.SMTPException:
    print ("Error: 无法发送邮件")

摘自:https://www.w3cschool.cn/python3/python3-cgi-programming.html
三、项目制作:
1.安装pygame:LIunx系统打开终端窗口:$ sudo apt-get install python-pygame;
OS X 系统:$ pip3 install --user pygame
Window系统:下载pygame-1.9.2a0-cp35-none-win32.wh
在放置pygame文件夹打开终端窗口输入:python -m pip install --user pygame-1.9.2a0-cp35-none-win32.whl
2.创建项目一个窗口:

import sy , pygame
def run_pygame():
    pygame.init()           #调用模块
    screen = pygame.display.set_mode((1200,800))        #窗口宽度
    pygame.display.set_caption('Aline Invasion')        #表头标题
    bg_color = (230,230,230)                     #窗口背景颜色值(255, 0, 0)表示红色, (0, 255, 0)表示绿色,而(0, 0, 255)表示蓝色。
    # 通过组合不同的RGB值,可创建1600万种颜色。在颜色值(230, 230, 230)中,红色、蓝色和绿色量相同,它将背景设置为一种浅灰色
    while True:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                sys.exit()
        screen.fill(bg_color)
        pygame.display.flip()
run_pygame()

python CGI编程、smtp邮件发送、pygame项目创建_第1张图片

你可能感兴趣的:(笔记,python,交互,游戏)