投票系统

1.说明:

写了一个投票系统。过程是先配置好server。在写一个网上投票功能,要实现网上投票功能。

事实上功能实现还是非常easy的,麻烦一点的在于过程比較繁杂,要做的东西还是挺多的!

2.过程:

第一步:配置httpdserver

先配置好httpdserver。

我先下载好了和httpserver的包后,因为fedora的httpd配置相对照较简单,所以我也仅仅是简单的做了一下改动,例如以下:

把:

<Directory"/var/www/cgi-bin">

AllowOverrideNone

OptionsNone

Requireall granted

</Directory>

改动为:

<Directory"/var/www/cgi-bin">

AllowOverrideNone

AddHandlercgi-script py sh cgi

OptionsExecCGI

Orderallow,deny

Allowfrom all

Requireall granted

</Directory>

然后在开启httpdserver就好了。

第二步:建立数据库

因为投票要涉及到数据库的改动与更新,所以要事先建立好一个数据库。我建立了一个名为poll的数据库,并为poll数据库建立了一个名为poll_name的表,里面加入了name与num两个字段,并插入了

“ alop“ ,0
与 “ daoyan“ 0两个值,用于投票,须要注意的是,建立数据库仅仅是为了投票后要进行数据更新在返回页面,所以,假设想简单一点的话。我认为用文件就足够了。不够这个样例是由于数据极为简单,但要是若有非常多复杂的操作的话,还是建立数据库比較方便!

第三步:写cgi程序

这是最关键的一步了。这一步要完毕的是当用户投票之后。通过通信技术返回给server之后,server该怎样处理的问题,毫无疑问,这次我们要做的就是当客服端选择某个人,如”alop“。并点击,server收到这个消息后,要对数据库的里”alop”的num值+1就可以,这里我是用python写的程序,例如以下:

#!/usr/bin/envpython

#coding=utf-8

importcgi, cgitb

importMySQLdb

db= MySQLdb.connect("localhost", "root", "","poll")

cursor= db.cursor()

sql_update= "UPDATE poll_name SET num = num + 1 WHERE name = '%s'"

sql_query= "SELECT num FROM poll_name"

results= ()

form= cgi.FieldStorage()

name= form.getvalue('name')

sql_update= sql_update % name

cursor.execute(sql_update)

db.commit()

cursor.execute(sql_query)

results= cursor.fetchall()

print"Content-type:text/html\r\n\r\n"

print"<html>"

print"<head>"

print"<title>Radio - Fourth CGI Program</title>"

print"</head>"

print"<body>"

print'<form action="/cgi-bin/election.py" method="post">'

print'<input type="radio" name="name" value="alop"/> alop %d </br>' % results[0][0]

print'<input type="radio" name="name"value="daoyan" /> daoyan %d </br>' %results[1][0]

print'<input type="submit" value="submit" />'

print"</form>"

print"</body>"

print"</html>"

整个程序还是非常easy的。

这样,就完毕了整个过程:

3.效果

效果例如以下:

当点击alop后,例如以下

这样,整个过程就完毕了。

最新文章

  1. myeclipse部署web项目到server : deploy location 为 INVALID,并且不能更改
  2. mysql修改表结构
  3. Windows环境下tomcat配置日志输出
  4. GNU INET SOCKET
  5. ECSHOP 开发总结
  6. sublime &amp; atom 插件
  7. Java程序员的必备知识-类加载机制详解
  8. 理解Go Interface
  9. 依赖注入[2]: 基于IoC的设计模式
  10. Juc中Atomic原子类总结
  11. 写在HTTP协议之前
  12. MySQL中表复制:create table like 与 create table as select
  13. Thymeleaf学习记录(1)--启动模板及建立Demo
  14. docker执行第一个应用
  15. 如何重写hashCode()和equals()方法
  16. while 语句
  17. Java补充内容
  18. js判断字符是否为空的方法
  19. Eclipse添加中文javadoc
  20. 【luogu P1373 小a和uim之大逃离】 题解

热门文章

  1. Spring源码分析专题 —— 阅读指引
  2. Vue Cli 打包之后静态资源路径不对的解决方法
  3. gogodroid--android 上的IPV6工具
  4. React-怎么写好组件-简单
  5. [React &amp; Debug] Quick way to debug Stateless component
  6. Q13.cocoapod_卡在“analyzing_depengcies”问题解决
  7. 在Windows下搭建Apacheserver
  8. [Angular] Reactive Store and AngularFire Observables
  9. swift开发多线程篇 - NSThread 线程相关简单说明(一些使用和注意点)
  10. vagrant 的安装与使用