1.基本信息
网站网址:Haite的个人博客(服务器过期,网站已无法继续访问)
2.创建网站
2.1 需求分析
(1)动机平时做完一些设计,实验喜欢分享给别人,所以想要建立一个个人博客,让网友可以通过我的网站来阅读我的文章。其次身为一个计算机专业的学生,一些网上的进制转换计算器等小工具也有方便过我的学习,所以我想要做出一些小工具帮助别人。
(2)网站功能 支持我自己的文章发布及修改,支持网友的评论留言、数据库小工具。
2.2 申请域名
-
本来打算使用课堂上讲到的五个免费域名。

但是发现因为版权原因这五个域名也不再能申请

-
于是乎我就在阿里云中购买了haite.site域名。

-
后来听同学说,在硅云中新用户可以免费注册一年的域名(我也没有去验证过)。
2.3 申请服务器
在这个步骤中我经历了两个过程
-
首先我在微软AZURD完成学生认证,并申请的一台虚拟机,但在使用虚拟机SSH连接时遇到了问题,导致我放弃了这个方法。
-
虽然这个过程失败了 但我也收获到了知识。
-
关于虚拟机的配置设置,增加对虚拟机的了解。
-
虚拟机尝试ssh连接,虽然再这一步失败了,但我也学到了一些使用powershell尝试ssh连接的指令,powershell指令。
-
失败的原因我也没有探究出来。
-
之后我就在阿里云中的飞天计划申请了一台七个月的云服务器。

2.4 建立网站
2.4.1 域名解析
将云服务器的公网ip解析到域名中,使得通过域名可以访问到我的网站。

添加这两条域名记录后我便可以通过www.haite.site与haite.site访问网站
2.4.2服务器配置并添加站点
-
在服务器中输入安装脚本,服务器就会开始安装宝塔面板,安装成功后会给一个外网地址和内网地址,进入外网地址,输入账号密码,就可以打开宝塔面板,点击一键安装数据库MYSQL,PHP,nginx等,服务器基本配置就完成了。
-
并且能在宝塔面板中很方便的管理网站。
-
这一个过程中,由于使用宝塔面板,导致我没什么参与感,于是我决定再申请一个服务器,自己尝试服务器配置这个过程。
-
安装数据库:
-
我的操作步骤以注解的形式批注在图片上。

-
这一步是解压刚刚下载的安装包。
![]()



-
至此Mysql安装完毕。
-
安装nginx:
-
由于安装nginx需要用到yum指令,但是在使用yum指令时出现了问题1的报错。 问题1:Command 'yum' not found, did you mean:(无法使用YUM指令)
-
在我尝试安装yum时又出现了新的错误,如下问题2。 问题2:Unable to locate package yum
-
不断尝试中,我没有找到解决方法,这些错误仿佛形成一个循环,又加上备考原因我 暂时放弃了手动配置云服务器nginx。
2.4.3 网站备案
由于我的域名及云服务器都是国内的,所以建立网站后需要备案,才能访问。 于是我在阿里云申请了ICP备案。


申请后大概等待了7-8个工作日就通过了。 之后我就可以开始为我的网站添加内容。
2.4.4 完善我的网站
-
先使用网站安装PHP个人博客网站模板,使网站有一个基本框架,便于后续网站管理。
-
修改HTML文件,将首页的LOGO,头像,座右铭改为自己的。
-
我为网站绘制了一个自己的专属LOGO,并使用PHP将它添加到我的网站。

-
通过修改HTML,添加自己喜欢的文字,把个人信息修改为自己的。

-
为我的博客网站添加文章。
-
我为我的网站新建了课程设计标签,并在其中添加了我大二上学期完成的三个课程设计所写的文章。

2.4.5 网站完整效果呈现:
-
首页

-
数据库小工具

-
文章详细

进阶
-
由于网站大部分内容使用了PHP模板,为了多学习一些内容,也为了丰富我的网站我还使用了HTML,CSS,Javascript设计了一个数据库小工具。
-
设计理念:当我们设计好一个数据库表时,为了对它进行测试,我们需要有数据,但让我们手动码出一条条插入语句,一个个数据这个过程往往是很繁琐乏味的,就想设计一个工具来帮助我们生成插入语句,我们只需要CRTL+C&&CRTL+V就能完成数据的插入。
最终成果:

例如:我想生成五条数据,首先勾选我想要的属性,其次输入我想要的表名(示例中的表名为Employer),最后输入5,点击数据,在最后一块矩形块中就会生成五条插入语句。
HTML源代码
<!DOCTYPE html>
<html lang="en-us">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>数据生成小工具</title>
<link href="tbtool.css" type="text/css" rel="stylesheet">
</head>
<body>
<h1>数据库插入数据生成工具</h1>
<h2>简介:作为一名程序员,在前期的数据库设计阶段,需要一些数据进行测试,而手动输入数据是费时而乏味的,所以开发一个数据生成工具来解决</h1>
<div class="input_">
常用属性:
<input type="checkbox" name="Keys" value="id" />ID
<input type="checkbox" name="Keys" value="name" />姓名
<input type="checkbox" name="Keys" value="age" />年龄
<input type="checkbox" name="Keys" value="sex" />性别
<input type="checkbox" name="Keys" value="tell" />电话号码
<input type="checkbox" name="Keys" value="wage" />工资
<br>
生成数据数量:
<input type="number" id="count" value="0" />
<br>
<br>
生成数据表名:
<input type="text" id="tname" value="Employer" />
<br>
<br>
<input type="button" value="生成数据" onclick="getAll()"/>
</div>
<div class="output_" id="output_">
<p>产生的数据</p>
</div>
<script src="tbtool.js"></script>
</body>
</html>
CSS源代码:
h1 {
line-height: 50px;
color: rgba(242, 107, 10, 0.881);
text-align: center;
font-size: 30px;
font-weight: 1000;
font-family: "Microsoft JhengHei UI";
background:
radial-gradient(circle farthest-side at 0% 50%,#fb1 23.5%,rgba(240,166,17,0) 0)21px 30px,
radial-gradient(circle farthest-side at 0% 50%,#B71 24%,rgba(240,166,17,0) 0)19px 30px,
linear-gradient(#fb1 14%,rgba(240,166,17,0) 0, rgba(240,166,17,0) 85%,#fb1 0)0 0,
linear-gradient(150deg,#fb1 24%,#B71 0,#B71 26%,rgba(240,166,17,0) 0,rgba(240,166,17,0) 74%,#B71 0,#B71 76%,#fb1 0)0 0,
linear-gradient(30deg,#fb1 24%,#B71 0,#B71 26%,rgba(240,166,17,0) 0,rgba(240,166,17,0) 74%,#B71 0,#B71 76%,#fb1 0)0 0,
linear-gradient(90deg,#B71 2%,#fb1 0,#fb1 98%,#B71 0%)0 0 #fb1;
background-size: 40px 60px;
background-size: 20px 20px;
border-radius: 5px;
text-shadow: 2px 2px 3px #ffffff;
margin-top: 20px;
margin-left: 10px;
margin-right: 10px;
box-shadow: 3px 3px 3px rgba(0, 0, 0,0.9),inset 2px 1px 2px rgba(255, 255, 255,0.5);
border-color:black;
border:2px solid black;
}
h2 {
line-height: 50px;
color: white;
text-align: center;
font-size: 20px;
font-family: "Microsoft JhengHei UI";
background-color: rgb(51, 169, 37);
border-radius: 5px;
text-shadow: 2px 2px 3px #222222;
margin-top: 20px;
margin-left: 10px;
margin-right: 10px;
box-shadow: 3px 3px 3px rgba(0, 0, 0,0.9),inset 2px 1px 2px rgba(255, 255, 255,0.5);
border-color: black;
border: 2px solid black;
}
.input_{
color: white;
width: 100fr;
height: 180px;
text-align: center;
font-size: 20px;
font-family: "Microsoft JhengHei UI";
background:
radial-gradient(circle at 100% 50%, transparent 20%, rgba(159, 110, 42, 0.925) 21%, rgba(159, 110, 42, 0.925) 34%, transparent 35%, transparent),
radial-gradient(circle at 0% 50%, transparent 20%, rgba(159, 110, 42, 0.925), rgba(159, 110, 42, 0.925) 34%, transparent 35%, transparent) 0 -50px;
background-color: rgb(125, 59, 0);
background-size:75px 100px;
border-radius: 5px;
text-shadow: 2px 2px 3px #222222;
box-shadow: 3px 3px 3px rgba(0, 0, 0,0.9),inset 2px 1px 2px rgba(255, 255, 255,0.5);
border-color: black;
border: 2px solid black;
padding: 10px;
margin-top: 30px;
margin-left: 10px;
margin-right: 10px;
}
.output_{
line-height: 50px;
color: rgb(13, 13, 13);
text-align: center;
font-size: 20px;
font-weight: 700;
font-family: "Microsoft JhengHei UI";
background-color: rgb(51, 169, 37);
border-radius: 5px;
margin-top: 20px;
margin-left: 10px;
margin-right: 10px;
box-shadow: 3px 3px 3px rgba(0, 0, 0,0.9),inset 2px 1px 2px rgba(255, 255, 255,0.5);
background-color: #fff;
background-image:
linear-gradient(90deg, transparent 79px, #abced4 79px, #abced4 81px, transparent 81px),
linear-gradient(#eee .1em, transparent .1em);
background-size: 100% 1.2em;
border: 2px solid black;
}
#num{
margin-top: 30px;
}
javascript源代码:
var id;
var name;
var age;
var sex;
var tell;
var wage;
var sql;
var prename=["陈","黄","周","吴","徐","朱","胡","林","何","罗","郑",];
var lastname=['靖','铭','琛','川','承','司','斯','宗','骁','聪','在','钩','锦','铎','楚','铮','钦','则','真','心','新','悦','西','兮','楚','初','千','锐','素','锦','静','镜','斯','舒','瑜','童'];
var pretell=["139","132","147","157","188","159","181","150"];
function getAll(){
var Keys=document.getElementsByName("Keys");
var count=document.getElementById("count").value;
var tname=document.getElementById("tname").value;
var last=getlast();
var allsql='';
if(last=='kong'){
alert("请输入要生成的数据项的属性");
}else{
for(var i=1;i<=count; i++){
sql="INSERT INTO ";
sql+=tname;
sql+=" VALUEWS ("
for(var j=0;j<Keys.length;j++){
if(Keys[j].checked){
if(Keys[j].value=='id'){
id=i;
sql+=id;
if(last=='id'){
sql+=");";
break;
}else{
sql+=",";
}
}else if(Keys[j].value=='name'){
name=getname();
sql+='\'';
sql+=name;
sql+='\'';
if(last=='name'){
sql+=");";
break;
}else{
sql+=",";
}
}else if(Keys[j].value=='age'){
age=getage();
sql+=age;
if(last=='age'){
sql+=');';
break;
}else{
sql+=",";
}
}else if(Keys[j].value=='sex'){
sex=getsex();
sql+='\'';
sql+=sex;
sql+='\'';
if(last=="sex"){
sql+=");";
break;
}else{
sql+=",";
}
}else if(Keys[j].value=='tell'){
tell=gettell();
sql+='\'';
sql+=tell;
sql+='\'';
if(last=="tell"){
sql+=");";
break;
}else{
sql+=",";
}
}else if(Keys[j].value=='wage'){
wage=getwage();
sql+=wage;
if(last=="wage"){
sql+=");";
break;
}else{
sql+=",";
}
}
}
}
allsql+=sql;
allsql+="<br>";
}
let div = document.getElementById("output_");
div.innerHTML=allsql;
document.body.appendChild(div);
}
}
function getname(){
var temp='';
temp+=prename[Math.ceil(Math.random()*prename.length-1)];
temp+=lastname[Math.ceil(Math.random()*lastname.length-1)];
temp+=lastname[Math.ceil(Math.random()*lastname.length-1)];
return temp;
}
function getage(){
return Math.ceil(Math.random()*47+18);
}
function getsex(){
var flag=Math.ceil(Math.random()*2);
if(flag==1){
return '男';
}else{
return '女';
}
}
function gettell(){
var temp='';
temp+=pretell[Math.ceil(Math.random()*pretell.length-1)];
for(var i=0;i<8;i++){
temp+=Math.ceil(Math.random()*10-1);
}
return temp;
}
function getwage(){
return Math.ceil(Math.random()*70+30)*100;
}
function getlast(){
var Keys=document.getElementsByName("Keys");
for(var j=Keys.length-1;j>=0;j--){
if(Keys[j].checked){
if(Keys[j].value=='wage'){
return 'wage';
}else if(Keys[j].value=='tell'){
return 'tell';
}else if(Keys[j].value=='sex'){
return 'sex';
}else if(Keys[j].value=='age'){
return 'age';
}else if(Keys[j].value=='name'){
return 'name';
}else if(Keys[j].value=='id' ){
return 'id';
}
}
}
return "kong";
}
785

被折叠的 条评论
为什么被折叠?



