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

   日期:2020-05-10     浏览:140    评论:0    
核心提示:先看下效果,UI有些简陋,内容有些low,不过网站是从无到有了,功能目的会以后学习再修改!开发我就不介绍了,我也是才开始学flask建站的,就简单记录下过程。域名解析就是将域名指向服务器IP,我是在阿里云买的服务器,万网买的域名。在阿里云控制台直接可操作。登录域名控制台,找到购买域名解析。这个是我的,已经不是第一次解析了,第一次解析底下没有记录,不过不影响,添加记录。把搭建好网站的...python

最终界面

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

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
更多>相关资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服