Tomcat, MySQL和Python(2)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: Tomcat, MySQL和Python(2)

一、采用Windows MySQL


1.下载MYSQL安装包

可以去官网下载ZIPhttp://www.mysql.com/downloads/mysql/

我安装的是mysql-5.5.23-winx64


2.解压到本地目录

D:\mysql


3.添加系统环境变量

添加系统环境变量是为了在命令控制窗口里更方便点。

新建:MYSQL_HOME ==> D:\mysql

追加:PATH==>;%MYSQL_HOME%\bin


4. 修改MySQL5.5的配置文件,把my-small.ini改名为my.ini进行编辑

a)在[mysqld]下追加

-------
basedir = "d:\\mysql"
datadir = "d:\\mysql\\data"
character-set-server = gb2312
-------

b) [client]下追加

-------
default-character-set = gb2312
-------


5.启动服务

保存my.ini的配置,然后打开命令行(开始菜单==>运行==>cmd

输入: mysqld --console 然后回车将看到如下类似内容:

-------
C:\Windows\system32>mysqld --console
120410 14:25:22 [Note] Plugin 'FEDERATED' is disabled.
120410 14:25:22 InnoDB: The InnoDB memory heap is disabled
120410 14:25:22 InnoDB: Mutexes and rw_locks use Windows interlocked functions
120410 14:25:22 InnoDB: Compressed tables use zlib 1.2.3
120410 14:25:22 InnoDB: Initializing buffer pool, size = 128.0M
120410 14:25:22 InnoDB: Completed initialization of buffer pool
120410 14:25:22 InnoDB: highest supported file format is Barracuda.
120410 14:25:22 InnoDB: Waiting for the background threads to start
120410 14:25:23 InnoDB: 1.1.8 started; log sequence number 1595675
120410 14:25:23 [Note] Event Scheduler: Loaded 0 events
120410 14:25:23 [Note] mysqld: ready for connections.
Version: '5.5.22' socket: '' port: 3306 MySQL Community Server (GPL)
-------

==> 证明mysql服务已启动


6. 设置登陆mysql root帐号的的密码

打开新的命令行,输入 mysql -uroot 回车

-------
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.5.22 MySQL Community Server (GPL)
Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners. www.2cto.com 
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
-------


==〉看到上面类似内容说明登陆成功,此时的root帐号是没有密码的

执行命令修改密码:

 

use mysql; 
update user set password=PASSWORD("这里填写你要设置的密码") where user='root';

 

执行完成后退出mysql操作,然后关闭mysql服务(ctrl+C 关闭另一个命令窗口),然后重启mysql服务

 

然后使用你的root帐号登录 

mysqladmin -u root password 你的密码

网上是这么写的,但我这样出现了下面的错误

Error: Access denied for user 'root'@'localhost' (using password: YES)

原因是ROOT 的密码没设,或者有错误,网上搜了许多的方法都不行,最后这个成功了,不过必须是主机上执行。

直接运行命令行窗口输入下面的

 

mysqladmin -u root password 你的密码

这样就行了,然后再使用 mysqladmin -u root password 你的密码就可以正常登录了。

 

7.安装WINDOWS服务

命令行窗口 CD 进入D:\MySql\bin

执行mysqld.exe --install MySQL5.5 --defaults-file="D:\MySql\my.ini"

net start mysql5.5

到服务器里把 MYSQL5.5改成自动,这样每次开机MYSQL服务就会自动启动了

 

二,安装XAMPP(我采用的是这种方式)


下载安装以后通过控制面板启动MySQL,在C:\xampp\mysqlXAMPP我是安装在C:\xampp下的)建立文件my.ini,内容如下:

[mysqld]
basedir =   "C:\xampp\mysql"
datadir =   "C:\xampp\mysql\data"
character-set-server =   gb2312
[client]
default-character-set =   gb2312


进入C:\xampp\mysql\bin目录下,修改文件my.cnf

[client]
# password       = your_password
port            = 3306
socket          =   "C:/xampp/mysql/mysql.sock"
default-character-set =   gb2312
# The MySQL server
[mysqld]
port= 3306
character-set-server =   gb2312


进入MySQL中键入命令:

Showvariables like '%char%';查看字符集是否为gb2312

mysql> Show variables like '%char%';

+--------------------------+--------------------------------+

| Variable_name            | Value                          |

+--------------------------+--------------------------------+

| character_set_client     | gb2312                           |

| character_set_connection | gb2312                           |

| character_set_database   | gb2312                          |

| character_set_filesystem | binary                             |

| character_set_results    | gb2312                           |

| character_set_server     | gb2312                          |

| character_set_system     | utf8                            |

| character_sets_dir       | C:\xampp\mysql\share\charsets\     |

+--------------------------+--------------------------------+

8 rows in set (0.00 sec)

paper.htmlpaper.jsp放入对应目录下,运行后,通过命令:

mysql>select * from paper;

来检查数据是否插入导数据库中,并且显示为中文

 

插入数据库中的工作做完了,然后我们来完成把数据库中的数据通过模板来生成网页文件,为什么要生成HTML格式的网页文件主要是为了能更好地让搜索引擎找到我们。首先我们来定义电脑版本的模板文件:

A1.html

<!DOCTYPE html PUBLIC   "-//W3C//DTD XHTML 1.0 Transitional//EN"   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html   xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta   http-equiv="Content-Type" content="text/html;   charset=utf-8" />
<title>啄木鸟软件测试培训网--软件测试培训-- +++1   </title>
<meta name=Keywords   content="软件测试,软件测试培训,第三方软件测试,软件本地化,软件培训,软件测试培训">
<meta name=descripton   content=" +++3 ">
<link   rel="stylesheet" type="text/css"   href="../images/public.css"/>
</head>
<body>
        <iframe src="../include/head.htm"   width="100%" height="350" scrolling="no"   frameborder="0"></iframe>
    <div>
           <div>
                    <div><a href="../index.html">首页</a>  >    软件测试</div>
            <div>
                 <div>
                  <div>       
                      <p><b><font size="4"> +++1   </font></b></p>
                        <p>
                                                  +++2 </p>
                                                  <p><a   href="http://www.3testing.com">软件测试</a></p>
<p>  </p>
<p>  &nbsp;</p>
<span   style="float:right;">【<a   href="mailto:shaozz158@126.com">投稿</a>】</span><span   style="float:right;">【<a   href="javascript:window.close()"   style="color:#13A0FF;">关闭窗口</a>】</span><span   style="float:right;">【<a   href="javascript:window.print()" style="color:#13A0FF;">打印</a>】</span></p>
                    </div>
                </div>
                <iframe   src="../include/right.html" width="240"   height="640" scrolling="no" frameborder="0"   style="float:right;"></iframe>
            </div>
           </div>
    </div>
        <iframe src="../include/button.htm"   width="100%" height="120" scrolling="no"   frameborder="0"></iframe>
</body>
</html>


其中:

  • +++1:用标题来替换;
  • +++2:用内容来替换;
  • +++3:用标题的一部分来替换。

手机版本的模板文件也类似:

A2.html

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta   content="width=device-width,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no,minimal-ui"   name="viewport"/>
<meta   name="apple-mobile-web-app-capable" content="yes" />
<meta   name="apple-mobile-web-app-status-bar-style"   content="black"/>
<meta   content="telephone=no" name="format-detection" />
<!-- UC默认竖屏 -->
<meta   name="browsermode" content="application" />
<!-- QQ强制竖屏 -->
<meta   name="x5-orientation" content="portrait" />
<meta   name="x5-page-mode" content="app" />
<title>+++1</title>
<link   href="../css/cate.css" rel="stylesheet"   type="text/css" />
</head>
<body>
        <div>
           <div onClick="history.go(-1);"></div>
        <div>我的文章</div>
        <div   onClick="javascript:window.location.href='../index.html'"></div>
    </div>
    <div>
        <div>
              <div>+++1</div>
            <div>
                             <p>+++2</p>
            </div>
        </div>
    </div>   
    <div>
        <p>啄木鸟软件测试咨询网 版权所有 @2006-2017</p>
        <p>沪ICP备06048994号</p>
    </div>
    <div><a   onclick="pageScroll()"><img src="../images/top.png"   /></a></div>
<script>
function pageScroll(){
    window.scrollBy(0,-100);
    scrolldelay =   setTimeout('pageScroll()',100);
    var   sTop=document.documentElement.scrollTop+document.body.scrollTop;
    if(sTop==0) clearTimeout(scrolldelay);
}
</script>
</body>
</html>


然后让我们来看看如何让python文件来完成替换:

paper.py

#!/usr/bin/env python
#coding=utf8
import MySQLdb
import re
import time
import codecs
#把HTML中的特殊字符正则替换成HTML格式,一来防止乱码,二来防止CSS注入
def myrepeat(s):
          s=re.sub("<","&lt;",s)
          s=re.sub(">","&gt;",s)
          s=re.sub("\"","&quot;",s)
        s=re.sub("\r\n","<br>",s)
        s=re.sub("   ","&nbsp;",s)
        return s
def   deal(myfile,sig,title,content):
          f1=codecs.open(myfile,encoding='utf8') #以中文格式打开读文件
        myline=f1.read()
        # 替换模板文件标签
        myline=myline.replace('+++1',title)
        myline=myline.replace('+++2',content)
          myline=myline.replace('+++3',content[10:40])
        f1.close()
          f2=codecs.open(sig+time+str(i)+".html","w",encoding='utf8')#以中文格式打开写文件
        f2.write(myline)
        f2.close()
        return f2
if   __name__=="__main__":
        #连接数据库
        conn =   MySQLdb.connect(host="localhost",user="root",passwd="123456",db="mypaper",charset="gb2312")
        cur = conn.cursor()
        cur.execute("select * from paper   where sig=1")
        time=time.strftime('%Y%m%d',time.localtime(time.time()))
        lines =cur.fetchall()
        i=0
        for line in lines:
                title=myrepeat(line[1])
                content=myrepeat(line[2])
                  deal("A1.html","",title,content)
                  deal("A2.html","p",title,content)
#为防止下次在生成,把标签设置为1
                cur.execute("update   paper set sig=0 where id="+str(line[0]))
                i+=1
        print "转换成功"


在这里需要指出,由于要连接数据库,引入import MySQLdb,你必须先下载安装MySQL-python-1.2.3.win-amd64-py2.7文件,由于我这里是python2.7版本,所以必须以-py2.7结尾。在安装MySQL-python-1.2.3.win-amd64-py2.7的时候如果发现python2.7没有注册,你必须运行以下文件:

reg.py

# 
# script to register   Python 2.0 or later for use with win32all   
# and other extensions   that require Python registry settings 
# 
# written by Joakim Loew   for Secret Labs AB / PythonWare 
# 
# source: 
#   http://www.pythonware.com/products/works/articles/regpy20.htm 
# 
# modified by Valentine   Gogichashvili as described in   http://www.mail-archive.com/distutils-sig@python.org/msg10512.html 
import sys 
from _winreg import * 
# tweak as necessary 
version =   sys.version[:3] 
installpath =   sys.prefix 
regpath =   "SOFTWARE\\Python\\Pythoncore\\%s\\" % (version) 
installkey =   "InstallPath" 
pythonkey =   "PythonPath" 
pythonpath =   "%s;%s\\Lib\\;%s\\DLLs\\" % (   
    installpath, installpath,   installpath 
) 
def RegisterPy(): 
    try:   
        reg = OpenKey(HKEY_CURRENT_USER,   regpath) 
    except EnvironmentError as e: 
        try:   
            reg =   CreateKey(HKEY_CURRENT_USER, regpath) 
            SetValue(reg, installkey, REG_SZ,   installpath) 
            SetValue(reg, pythonkey, REG_SZ,   pythonpath) 
            CloseKey(reg) 
        except: 
            print "*** Unable to   register!" 
            return 
        print "--- Python",   version, "is now registered!"   
        return 
    if (QueryValue(reg, installkey) ==   installpath and 
        QueryValue(reg, pythonkey) ==   pythonpath): 
        CloseKey(reg) 
        print "=== Python",   version, "is already registered!"   
        return 
    CloseKey(reg) 
    print "*** Unable to   register!" 
    print "*** You probably have another   Python installation!" 
if __name__ ==   "__main__": 
    RegisterPy()


然后在去安装MySQL-python-1.2.3.win-amd64-py2.7

 

好了,就到这里了,http://www.3testing.com/test/201701170.html 就是我用这种方法生成的网页


顾翔凡言:

一名优秀的软件测试工程师首先是一名优秀的软件需求分析师或软件架构设计师。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
目录
相关文章
|
4月前
|
Java 关系型数据库 MySQL
在Linux平台上进行JDK、Tomcat、MySQL的安装并部署后端项目
现在,你可以通过访问http://Your_IP:Tomcat_Port/Your_Project访问你的项目了。如果一切顺利,你将看到那绚烂的胜利之光照耀在你的项目之上!
283 41
|
4月前
|
开发框架 Java 关系型数据库
在Linux系统中安装JDK、Tomcat、MySQL以及部署J2EE后端接口
校验时,浏览器输入:http://[your_server_IP]:8080/myapp。如果你看到你的应用的欢迎页面,恭喜你,一切都已就绪。
368 17
|
4月前
|
Java 关系型数据库 MySQL
在Linux操作系统上设置JDK、Tomcat、MySQL以及J2EE后端接口的部署步骤
让我们总结一下,给你的Linux操作系统装备上最强的军队,需要先后装备好JDK的弓箭,布置好Tomcat的阵地,再把MySQL的物资原料准备好,最后部署好J2EE攻城车,那就准备好进军吧,你的Linux军团,无人可挡!
112 18
|
4月前
|
关系型数据库 MySQL Java
安装和配置JDK、Tomcat、MySQL环境,以及如何在Linux下更改后端端口。
遵循这些步骤,你可以顺利完成JDK、Tomcat、MySQL环境的安装和配置,并在Linux下更改后端端口。祝你顺利!
304 11
|
4月前
|
开发框架 关系型数据库 Java
Linux操作系统中JDK、Tomcat、MySQL的完整安装流程以及J2EE后端接口的部署
然后Tomcat会自动将其解压成一个名为ROOT的文件夹。重启Tomcat,让新“植物”适应新环境。访问http://localhost:8080/yourproject看到你的项目页面,说明“植物”种植成功。
124 10
|
7月前
|
SQL 关系型数据库 MySQL
Python中使用MySQL模糊查询的方法
本文介绍了两种使用Python进行MySQL模糊查询的方法:一是使用`pymysql`库,二是使用`mysql-connector-python`库。通过这两种方法,可以连接MySQL数据库并执行模糊查询。具体步骤包括安装库、配置数据库连接参数、编写SQL查询语句以及处理查询结果。文中详细展示了代码示例,并提供了注意事项,如替换数据库连接信息、正确使用通配符和关闭数据库连接等。确保在实际应用中注意SQL注入风险,使用参数化查询以保障安全性。
|
8月前
|
关系型数据库 MySQL 应用服务中间件
《docker基础篇:8.Docker常规安装简介》包括:docker常规安装总体步骤、安装tomcat、安装mysql、安装redis
《docker基础篇:8.Docker常规安装简介》包括:docker常规安装总体步骤、安装tomcat、安装mysql、安装redis
290 7
|
监控 应用服务中间件 数据安全/隐私保护
|
3月前
|
Python
Python编程基石:整型、浮点、字符串与布尔值完全解读
本文介绍了Python中的四种基本数据类型:整型(int)、浮点型(float)、字符串(str)和布尔型(bool)。整型表示无大小限制的整数,支持各类运算;浮点型遵循IEEE 754标准,需注意精度问题;字符串是不可变序列,支持多种操作与方法;布尔型仅有True和False两个值,可与其他类型转换。掌握这些类型及其转换规则是Python编程的基础。
203 33

推荐镜像

更多