Python是一门很好的语言,我一直想学习下,前几个周,在亚马逊网上购买了一本《跟着老齐学Python》,在第一季,我严格按照书上的内容进行了学习,并且做了笔记,分享给了网友。但是觉得学得速度实在太慢,于是我改变了策略,给自己制定一个项目,边做项目边学习。
大家都知道我在维护一个网站:“啄木鸟软件测试咨询网”,都是基于手工的方法维护的,这次我想编写一些代码,采用数据库进行维护。于是我选择了通过HTML页面提交表单,由jsp将表单的内容提交到MySQL数据库中。然后定义显示页面模板,通过Python模板中的标签替换成数据库中的内容。HTML表单的格式为:
paper.html
<form method="POST" action="jsp/paper.jsp"> <p>标题:<br><input type="text" name="title" size="70"></p> <p>内容:<br><textarea rows="10" name="content" cols="70"></textarea></p> <p><input type="submit" value="提交" name="B1"></p> </form>
处理的jsp代码为:
<%@ page contentType="text/html; charset=gb2312" %> <%@ page language="java" %> <%@ page import="com.mysql.jdbc.Driver" %> <%@ page import="java.sql.*" %> <% String title=request.getParameter("title"); String content=request.getParameter("content"); title=new String(title.getBytes("iso-8859-1"),"gb2312"); content=new String(content.getBytes("iso-8859-1"),"gb2312"); title= title.replaceAll("'", "\'"); content= content.replaceAll("'", "\'"); //驱动程序名 String driverName="com.mysql.jdbc.Driver"; //数据库用户名 String userName="root"; //密码 String userPasswd="123456"; //数据库名 String dbName="mypaper"; //表名 String tableName="paper"; String sql="insert into paper(name,content,sig) values('"+title+"','"+content+"',1)" ; //联结字符串 String url="jdbc:mysql://localhost/"+dbName+"?user="+userName+"&password="+userPasswd; Class.forName(driverName).newInstance(); Connection connection=DriverManager.getConnection(url); Statement statement=connection.createStatement(); int count = statement.executeUpdate(sql); // 执行插入操作的sql语句,并返回插入数据的个数 out.print("<br>"); out.print("数据库操作成功,恭喜你"); statement.close(); connection.close(); %> </body>
其中“<%@ page contentType="text/html; charset=gb2312" %>”与“title=new String(title.getBytes("iso-8859-1"),"gb2312"); content=new String(content.getBytes("iso-8859-1"),"gb2312");”为了防止通过content=new String(content.getBytes("iso-8859-1"),"gb2312");的参数为中文乱码。MySQL的表结构为:
create table paper( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(200) NOT NULL, content VARCHAR(5000) NOT NULL, sig int NOT NULL, PRIMARY KEY (id) );