最终界面
先看下效果,UI有些简陋,内容有些low,不过网站是从无到有了,功能目的会以后学习再修改!
服务器网站开发
python-flask框架很容易上手,导入模块,几行代码即可实现访问!如下图:
from flask import Flask
from flask import render_template
from flask_bootstrap import Bootstrap
import requests
app = Flask(__name__)
bootstrap = Bootstrap(app)
#定义一个函数,把它传递给前端
@app.route("/")
def index():
return "hello world"
#return render_template("MP_verify_hudUjStNrDX81rx1.txt")
app.run(host="0.0.0.0",port=3000, debug=True)
模板文件templates和静态文件static_folder
是flask放置页面模板的文件,前端页面都放到这里集中用render_template返给前端,注意flask页面模板格式 Flask Template ( 模板学习)
static文件存放静态文件,比如css,js,图片,文本等,用url_for嵌套在html模板中即可访问,static静态文件配置
pymysql访问数据库
这里就简单说下用户登录和注册,用户名和密码都放在MySQL里,每次登录都去核对一下。
首先需要两个html模板和两个访问路径,两个获取参数处理路径如下:
regist 注册模块
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>注册</title> <style type="text/css"> .pass-label-userName{ font-size:24px;}
.pass-label-password{ font-size:24px;}
.pass-label-password1{font-size:24px;}
.button1{ font-size:24px;}
</style> <script language="javascript"> function button1(){
alert("已经注册啦!您好新用户!");}
</script> </head> <body> <div class="d1" align="center"> <form id="form1" name="form1" method="post" action="/registuser"> <label> 账号:<input type="text" name="username" value="{{ username }}" placeholder="请设置用户名"> </label> <label> 密码:<input type="password" name="password" value=" {{password}}" placeholder="请设置登陆密码">
</label>
<br>
<button class="button1" onClick="button1()">提交</button>
</form>
</div>
</body>
</html>
login 登陆模板
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <!--<script src="{{ url_for('static',filename='game1/js/log.js') }}"></script>--> <title>冥府登录系统</title> <style type="text/css"> body {
background-image: url('static/登录photo.jpg');
}
</style> </head> <body> <p><h1 align="center">阴冥地府登录系统</h1></p> <div class="d1" align="center"> <pre>
{% if message %}
<p style="color:red">{{ message }} </p>
{% endif %}
<form id="form1" name="form1" method="post" action="/login"> <label> 姓名:<input type="text" name="username" value="{{ username }}" /> </label> <label> 密码:<input type="password" id="password" name="password" value="{{password}}" />
</label>
<label>
<input type="submit" name="Submit" value="登录" οnclick="onin()">
<a href="regist">立即注册</a>
</label>
</form>
</body>
</html>
两个路径
#默认登陆
@app.route('/log')
def log():
return render_template('log.html')
#默认路径访问注册页面
@app.route('/regist')
def regist():
return render_template('regist.html')
两个参数处理(与mysql交互过程)
@app.route('/registuser', methods=["GET", "POST"])
def registuser():
#把用户名和密码注册到数据库中
try:
username = request.form['username']
password = request.form['password']
if not all([username,password]):
abort(400)
#连接数据库,此前在数据库中创建数据库TESTDB
db = pymysql.connect("localhost","root","root","msql",3306 )
# 使用cursor()方法获取操作游标
cursor = db.cursor()
# SQL 插入语句
sql = "INSERT INTO mtable(name, password) VALUES ('%s','%s')" % (username,password)
try:
# 执行sql语句
cursor.execute(sql)
# 提交到数据库执行
db.commit()
#注册成功之后跳转到登录页面
return render_template('log.html')
except:
#抛出错误信息
traceback.print_exc()
# 如果发生错误则回滚
db.rollback()
return '注册失败'
# 关闭数据库连接
db.close()
except:
abort(400)
@app.route('/login', methods=["GET", "POST"])
def getloginrequests():
try:
username = request.form['username']
password = request.form['password']
#查询用户名及密码是否匹配及存在
#连接数据库,此前在数据库中创建数据库TESTDB
db = pymysql.connect("localhost","root","root","msql",3306 )
# 使用cursor()方法获取操作游标
cursor = db.cursor()
# SQL 查询语句
sql = "select * from mtable where name=%s"" and password=%s" % (username,password)
try:
# 执行sql语句
cursor.execute(sql)
results = cursor.fetchall()
#print(len(results))
if len(results)==1:
return '登录成功'
else:
return '用户名或密码不正确'
# 提交到数据库执行
db.commit()
except:
# 如果发生错误则回滚
db.rollback()
# 关闭数据库连接
db.close()
except:
abort(400)
我不多介绍,代码应该都能看懂。
参考文章:python3+flask+mysql实现登录注册
效果如下图:
我还搞了些纯CSS模板和js小游戏!还有一些我常用的第三方网站链接,来丰富网站!网站内容就不一一介绍了。
网站简单开发就此哔哔完毕!
但是通过ip地址访问总觉得不舒服,得正式点向访问京东淘宝一样,域名访问多高大上啊!下一步接着走!
域名解析
就是将域名指向服务器公网IP,我是在阿里云买的服务器,万网买的域名。在阿里云控制台直接可操作。
登录域名控制台,找到购买域名解析。
这个是我的,已经不是第一次解析了,第一次解析底下没有记录,不过不影响,添加记录。
把搭建好网站的服务器公网IP填入记录值。点击确定。
绑定了域名短暂可以访问,但是一会就不行了,因为没有备案,服务器在国内的都必须备案才能正常访问,国家的要求就是这样,要么你就租国外的服务器,无需备案,但是国内访问速度就慢了,因为他会绕圈子。
备案
阿里云官方文档贴的备案流程
备案的时候一定要注意网站名一定要是中文!最高好自己提前想好几个名字,免得重复。
通过域名访问
当网站通过层层审核后大概10天,就可以通过域名访问了!