个人小破网站从无到有的过程python-flask-mysql

最终界面

先看下效果,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天,就可以通过域名访问了!

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一加六

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值