Web开发Python实现Web服务器(Flask测试后台框架模板)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Web开发Python实现Web服务器(Flask测试后台框架模板)相关的知识,希望对你有一定的参考价值。

1、前言

提示:Flask是一个用python语言基于Werkzeug工具箱编写的轻量级web开发框架,它主要面向需求简单,项目周期短的小应用。

Flask是一个轻量级的可定制框架,使用Python语言编写,较其他同类型框架更为灵活、轻便、安全且容易上手。它可以很好地结合MVC模式进行开发,开发人员分工合作,小型团队在短时间内就可以完成功能丰富的中小型网站或Web服务的实现。另外,Flask还有很强的定制性,用户可以根据自己的需求来添加相应的功能,在保持核心功能简单的同时实现功能的丰富与扩展,其强大的插件库可以让用户实现个性化的网站定制,开发出功能强大的网站。

  • 一个最小的 Flask 应用如下:
from flask import Flask
app = Flask(__name__)

@app.route(/)
def hello_world():
    return Hello, World!

2、Flask测试网页(后台框架模板)

2.1 基于layui的后台框架模板的网页

layui(谐音:类 UI) 是一套开源的 Web UI 解决方案,采用自身经典的模块化规范,并遵循原生 html/CSS/JS 的开发方式,极易上手,拿来即用。其风格简约轻盈,而组件优雅丰盈,从源代码到使用方法的每一处细节都经过精心雕琢,非常适合网页界面的快速开发。layui 区别于那些基于 MVVM 底层的前端框架,却并非逆道而行,而是信奉返璞归真之道。准确地说,它更多是面向后端开发者,你无需涉足前端各种工具,只需面对浏览器本身,让一切你所需要的元素与交互,从这里信手拈来。

  • test_layui.py:
#***************************************************************
#   Purpose:   基于layui的后台框架模板的网页(Flask的web服务器)
#   Author:    爱看书的小沐
#   Date:      2022-5-24
#   Languages: python
#   Platform:  python 3.9 win64
#   OS:        Win10 win64
# **************************************************************
from flask import Flask, Response
from flask import render_template, make_response, jsonify, send_from_directory
from io import FileIO
import os

app = Flask(__name__)
#app = Flask(__name__, template_folder="templates")

app.jinja_env.block_start_string = %%  # 修改块开始符号
app.jinja_env.block_end_string = %%  # 修改块结束符号
app.jinja_env.variable_start_string =   # 修改变量开始符号
app.jinja_env.variable_end_string =   # 修改变量结束符号
app.jinja_env.comment_start_string = ##  # 修改注释开始符号
app.jinja_env.comment_end_string = ##  # 修改注释结束符号复制代码

# 因为vue和render_template的模板都是用  ,所以会冲突,将flask的修改为[[  ]]
##app.jinja_env.variable_start_string = [[
##app.jinja_env.variable_end_string = ]]

@app.route(/)
def index():
    return render_template(layui-v2.6.9/examples/table.html)

@app.route("/dist/css/<path:path>")
@app.route("/src/css/<path:path>")
def get_css2(path):
    data = FileIO("templates/layui-v2.6.9/src/css/".format(path))
    resp = Response(data, mimetype="text/css")
    return resp

@app.route("/dist/<path:path>")
@app.route("/src/<path:path>")
def get_json(path):
    data = FileIO("templates/layui-v2.6.9/src/".format(path))
    resp = Response(data, mimetype="application/javascript")
    return resp

@app.route("/json/<path:path>")
def get_binary(path):
    data = FileIO("templates/layui-v2.6.9/examples/json/".format(path))
    resp = Response(data, mimetype="application/json")
    return resp

@app.route(/favicon.ico)
def favicon():
    return send_from_directory(os.path.join(app.root_path, static), favicon.ico
        , mimetype=image/vnd.microsoft.icon)
    #<link rel="shortcut icon" href=" url_for(static, filename=favicon.ico) ">
 
if __name__ == __main__:
   app.run(debug = True)
  • 运行结果:

2.2 基于layuimini的后台框架模板的网页

layuimini,后台admin前端模板,基于 layui 编写的最简洁、易用的后台框架模板。只需提供一个接口就直接初始化整个框架,无需复杂操作。

界面足够简洁清爽,响应式且适配手机端。

  • 一个接口几行代码而已直接初始化整个框架,无需复杂操作。

  • 页面支持多配色方案,可自行选择喜欢的配色。

  • 支持多tab,可以打开多窗口。

  • 支持无限级菜单和对font-awesome图标库的完美支持。

  • 失效以及报错菜单无法直接打开,并给出弹出层提示完美的线上用户体验。

  • url地址hash定位,可以清楚看到当前tab的地址信息。

  • 刷新页面会保留当前的窗口,并且会定位当前窗口对应左侧菜单栏。

  • 支持font-awesome图标选择插件.

  • test_layuimini.py:

#***************************************************************
#   Purpose:   基于layuimini的后台框架模板的网页(Flask的web服务器)
#   Author:    爱看书的小沐
#   Date:      2022-5-30
#   Languages: python
#   Platform:  python 3.9 win64
#   OS:        Win10 win64
# **************************************************************
from flask import Flask, Response
from flask import render_template, make_response, jsonify, send_from_directory
from io import FileIO
import os
import mimetypes

app = Flask(__name__)

app.jinja_env.block_start_string = %%  # 修改块开始符号
app.jinja_env.block_end_string = %%  # 修改块结束符号
app.jinja_env.variable_start_string =   # 修改变量开始符号
app.jinja_env.variable_end_string =   # 修改变量结束符号
app.jinja_env.comment_start_string = ##  # 修改注释开始符号
app.jinja_env.comment_end_string = ##  # 修改注释结束符号复制代码

@app.route(/)
def index():
    return render_template(layuimini-2/index.html)

@app.route("/<path:path>")
def get_staticfile(path):
    directory = os.getcwd() + "/templates/layuimini-2/"
    print(directory)
    response = make_response(send_from_directory(directory, path.encode(utf-8).decode(utf-8), as_attachment=False))
    mime_type = mimetypes.guess_type(path)[0]
    if path.endswith(".js") :
       mime_type = "application/javascript"
    response.headers[Content-Type] = mime_type
    print(directory, path, mime_type)
    return response

@app.route(/favicon.ico)
def favicon():
    return send_from_directory(os.path.join(app.root_path, static), favicon.ico
        , mimetype=image/vnd.microsoft.icon)
    #<link rel="shortcut icon" href=" url_for(static, filename=favicon.ico) ">
 
if __name__ == __main__:
   app.run(debug = True)
  • 运行结果:

2.3 基于Pear Admin Layui的后台框架模板的网页

Pear Admin 是一款开箱即用的前端开发模板,扩展Layui原生UI样式,整合第三方开源组件,提供便捷快速的开发方式,延续LayuiAdmin的设计风格,持续完善的样式与组件的维护,基于异步Ajax的菜单构建,相对完善的多标签页,单标签页的共存.

  • test_layuimini.py:
#***************************************************************
#   Purpose:   基于Pear Admin Layui的后台框架模板的网页(Flask的web服务器)
#   Author:    爱看书的小沐
#   Date:      2022-5-30
#   Languages: python
#   Platform:  python 3.9 win64
#   OS:        Win10 win64
# **************************************************************
from flask import Flask, Response
from flask import render_template, make_response, jsonify, send_from_directory
from io import FileIO
import os
import mimetypes

app = Flask(__name__)

app.jinja_env.block_start_string = %%  # 修改块开始符号
app.jinja_env.block_end_string = %%  # 修改块结束符号
app.jinja_env.variable_start_string =   # 修改变量开始符号
app.jinja_env.variable_end_string =   # 修改变量结束符号
app.jinja_env.comment_start_string = ##  # 修改注释开始符号
app.jinja_env.comment_end_string = ##  # 修改注释结束符号复制代码

@app.route(/)
def index():
    return render_template(Pear-Admin-Layui-main/index.html)

@app.route("/<path:path>")
def get_staticfile(path):
    directory = os.getcwd() + "/templates/Pear-Admin-Layui-main/"
    print(directory)
    response = make_response(send_from_directory(directory, path.encode(utf-8).decode(utf-8), as_attachment=False))
    mime_type = mimetypes.guess_type(path)[0]
    if path.endswith(".js") :
       mime_type = "application/javascript"
    response.headers[Content-Type] = mime_type
    print(directory, path, mime_type)
    return response

@app.route(/favicon.ico)
def favicon():
    return send_from_directory(os.path.join(app.root_path, static), favicon.ico
        , mimetype=image/vnd.microsoft.icon)
    #<link rel="shortcut icon" href=" url_for(static, filename=favicon.ico) ">
 
if __name__ == __main__:
   app.run(debug = True)
  • 运行结果:

3、Flask测试网页(其他)

3.1 基于vue的考试题目列表的网页

  • test_vue.py:
#***************************************************************
#   Purpose:   基于vue的考试题目列表的网页(Flask的web服务器)
#   Author:    爱看书的小沐
#   Date:      2022-5-30
#   Languages: python
#   Platform:  python 3.9 win64
#   OS:        Win10 win64
# **************************************************************
import sqlite3,os
from flask import Flask
from flask import jsonify,render_template,send_from_directory
from flask_cors import CORS

app = Flask(__name__)

# CORS(app, supports_credentials=True)    #解决跨域问题
cors = CORS(app, resources=r"/api/*": "origins": "*")   #两种模式都行

@app.route(/)
def home():
    return render_template(test_vue.html,title=flask + vue example)

@app.route(/api/questions)
def get_questions():
    db_path = os.getcwd() + "/static/exam.db"
    conn = sqlite3.connect( db_path )
    conn.row_factory = sqlite3.Row
    cur = conn.cursor()
    # sql = select * from questions
    sql = SELECT * from questions ORDER BY RANDOM () LIMIT 100
    rows = cur.execute(sql).fetchall()
    rows = [dict(row) for row in rows]
    return jsonify(rows)

@app.route(/favicon.ico)
def favicon():
    return send_from_directory(os.path.join(app.root_path, static), favicon.ico
        , mimetype=image/vnd.microsoft.icon)

if __name__ == "__main__":
    app.run(debug=True, port=5000)
  • 运行结果:

<font color=blue size=5> 亲,相关功能正在建设中,请稍等。。。

结语

如果您觉得该方法或代码有一点点用处,可以给作者点个赞,或打赏杯咖啡;╮( ̄▽ ̄)╭ 如果您感觉方法或代码不咋地//(ㄒoㄒ)//,就在评论处留言,作者继续改进;o_O??? 如果您需要相关功能的代码定制化开发,可以留言私信作者;(✿◡‿◡) 感谢各位童鞋们的支持!( ´ ▽´ )ノ ( ´ ▽´)っ!!!

以上是关于Web开发Python实现Web服务器(Flask测试后台框架模板)的主要内容,如果未能解决你的问题,请参考以下文章

Web开发Python实现Web服务器(Flask测试后台框架模板)

Web开发Python实现Web图表功能(pyecharts,Flask)

Python web框架 flask

Python 基于Flask的Web开发用户登录 注册

[Python WEB开发] 使用WSGI开发类Flask框架

手把手教你快速吃透Flask web开发!仅分享3天!