发布信息

LayUI mysql flask Flask网站模板 python (Layui模板)

     2024-10-23 21:47:04     418

本文目录导航:

Flask网站模板(python + flask + LayUI + mysql)

在构建Web运行程序时,一种经常出现的组合是应用Flask框架与LayUI前端和MySQL数据库。

这种技术栈为开发人员提供了高效且灵敏的平台,适宜构建灵活网站和API服务。

首先,让咱们来看看如何搭建基础的Flask网站模板。

Flask自身是一个轻量级的Web微框架,它的外围思念是繁难间接。

经过引入Flask,你可以在Python环境中极速搭建起一个基本的Web主机。

关于初始设置,通经常常使用以下步骤:

假设你宿愿将运行部署到消费环境,Gunicorn是一个罕用的WSGI主机,可以经过`gunicorn app:app`来启动。

关于进程治理和日志监控,Gunicorn提供了更好的性能和稳固性。

遇到封锁进程的疑问时,你可以经过发送`SIGINT`信号(通常经过Ctrl+C)或在Gunicorn性能文件中设置`worker_processes`来控制进程数量。

检查日志则可经过命令行工具如`tail -f logs/`,或许在Gunicorn性能中指定日志记载级别和门路。

Python的Flask框架中web表单

上方为你引见了Python的Flask框架中web表单的教程,表单是学习各个web框架中的基础常识,须要的好友可以参考下概要在前面章节咱们为主页定义了一个繁难的模板,局部尚未成功的模块如用户或帖子等经常使用模拟的对象作为暂时占位。

本章咱们将看到如何应用web表单填补这些空白。

web表单是web运行中最基本的构建要素,咱们将经过表单来成功用户发帖和运行登录性能。

成功本章内容你须要基于前面章节成功的微博运行代码,请确认这些代码已装置并能反常运转。

性能Flask-WTF是WTForms名目标Flask框架裁减,咱们将用他来协助咱们处置web表单。

大局部Flask裁减都须要定义相关性能项,所以咱们先来在运行根目录下创立一特性能文件以备经常使用。

咱们先这样创立 ():SRF_ENABLED = TrueSECRET_KEY = you-will-never-guess很繁难吧,这是Flask-WTF须要用到的2特性能项。

CSRF_ENABLED性能启用了跨站恳求攻打包全,大局部状况下你都须要开启此性能,这能使你的运行更安保。

SECRET_KEY设置当CSRF启用时有效,这将生成一个加密的token供表单验证经常使用,你要确保这个KEY足够复杂不会被繁难推测。

如今这特性能文件曾经基本可用了。

名目创立成功咱们可以创立如下文件并编辑(fileapp/__init__):?from flask import Flaskapp = Flask(__name__)_object(config)from app import views用户登录表单经常使用Flask-WTF创立的表单就像一个对象,须要从Form类承袭子类。

而后在这个子类中定义一些类的属性变量作为表单字段就可以了。

咱们要创立一个登录表单,用来启动用户身份识别。

但跟平时须要验证用户名和明码的登录形式不同,咱们将经常使用 OpenId 来处置登录环节。

经常使用OpenId的好处就是咱们不用管那些用户名和明码的认证环节,交给 OpenId 去搞定,它会前往给咱们用户验证后的数据。

这样关于经常使用咱们网站的用户而言也更安保。

经常使用 OpenId 登录只须要一个字符串,而后发送给 OpenId 主机就行了。

另外咱们还须要在表单中加一个“记住我” 的选项框,这个是送给那些不想每次来咱们网站都要启出发份认证的人。

选用这个选项后,初次登录时会用cookie在他们的阅读器上记住他们的登录信息,下次再进入网站时就不须要启动登录操作。

开局咱们的第一个表单吧 (fileapp/):?from import Form, TextField, BooleanFieldfrom import Requiredclass LoginForm(Form):openid = TextField(openid, validators = [Required()])remember_me = BooleanField(remember_me, default = False)参观一下这个类,如许的繁复,如许的了如指掌。

如此繁难,但又十分的富裕外延。

咱们引入了一个 Form 类,而后承袭这个类,按需求还参与了 TextField 和 BooleanField 这两个字段。

另外还引入了一个表单验证函数 Required,这种验证函数可以附加在字段外面,在用户提交表单时它们会用来审核用户填写的数据。

这个 Required 函数是用来防止用户提交空数据。

Flask-WTF 中还有很多不同作用的表单验证函数,咱们将会在前面经常使用到它们。

表单模板如今咱们的疑问就是须要一个显示这个登录表单的模板。

好信息是咱们刚刚创立的登录表单类知道如何把字段转换成HTML,所以咱们只须要把留意力集中到页面规划上。

上方就是咱们的登录表单的模板 (fileapp/templates/):-- extend from base layout --{% extends %}{% block content %}h1Sign In/h1form action= method=post name=login{{_tag()}}pPlease enter your OpenID:br{{(size=80)}}br/pp{{_me}} Remember Me/ppinput type=submit value=Sign In/p/form{% endblock %}容我_嗦一下,在这个模板中,咱们又一次性经常使用了模板承袭的形式。

经常使用 extends 语句从 承袭模板内容。
python
咱们会在前面创立的模板中继续经常使用这种形式,这样可以使咱们一切的页面规划坚持分歧。

这个登录模板跟个别的HTML表单有些显著的区别,它经常使用模板参数 {{ ... }} 来实例化表单字段,而表单字段又起源于咱们刚刚定义的表单类,模板参数中经常使用了 form 这个称号。

当咱们经常使用视图函数援用表单类并渲染到模板时,咱们要特意留意这个把表单类传递到模板的变量名。

咱们在性能中开启了CSRF(跨站伪造恳求)性能,模板参数 {{ _tag() }} 会被交流成一个具备防止CSRF性能的暗藏表单字段。

在开启了CSRF性能后,一切模板的表单中都须要参与这个模板参数。

咱们定义的表单对象中的字段雷同也能被模板渲染,只须要在模板适宜的位置参与相似于 {{ _name }} 这样的模板参数,相关字段就会在被定义的位置出现。

另外还有一些字段是可以传参数,比如这个 openid 字段,咱们就参与了一个参数让它显示的宽度参与到80个字符。

由于咱们没有在表单中定义一个提交性能的按钮,所以在这里只能以个别表单字段的形式来做了。

不过说起来区区一个按钮,在表单中跟任何数据都没有相关,确实也没有在表单类中定义的必要。

表单视图见证奇观的时辰最后一步,咱们马上要来写一个渲染登录表单对象到模板的视图函数。

这个函数相当的繁难无趣,由于咱们只须要把表单对象传递给模板就行了。

上方就是咱们这个视图函数的所有内容 (fileapp/):1112from flask import render_template, flash, redirectfrom app import appfrom forms import LoginForm# index view function suppressed for (/login, methods = [GET, POST])def login():form = LoginForm()return render_template(,title = Sign In,form = form)咱们引入登录表单类,而后把它实例化到一个变量,最后再把这个变量传给模板。

要渲染表单字段必定的事件也就这些。

上方的代码中还引入了两个新对象: falsh 和 redirect, 这个先甭理它们,稍后才用得上。

另外还做了一件事就是在路由装璜器中参与一个新方法。

让 Flask 明确咱们这个视图函数支持 GET 和 POST 恳求。

否则这个视图函数只会照应 GET 恳求。

咱们须要失掉用户填写表单后提交的数据,这些数据是从 POST 恳求中传递过去的。

你可以经过在阅读器中测试这个程序来了解上方所说的。

依照视图函数关联的路由,你应该在阅读器中输入 由于咱们还没有写任何接纳数据的代码,所以如今你在页面中点提交按钮还没有任何成果。

从表单中接纳数据另外值得一提的是, Flask-WTF 对表单提交数据的处置使咱们的接上去要做的事件变得繁难了。

上方就是咱们这个登录视图函数的新版本, 参与了表复数据验证和处置 (fileapp/):?(/login, methods = [GET, POST])def login():form = LoginForm()if _on_submit():flash(Login requested for OpenID= + + , remember_me= + str(_))return redirect(/index)return render_template(,title = Sign In,form = form)validate_on_submit() 这个方法做了表单处置的一切上班。

假设你在表单向用户提供数据时(举个栗子:用户在它之前修正了一下提交的数据) 时调用此方法,它会前往 False。

出现这样的状况时,你懂的。

疑问?就是提交的数据验证不经过,你要继续渲染模板。

在提交恳求时调用了表单的 validate_on_submit() 方法后,它会从恳求中失掉一切提交的数据,而后经常使用表单字段中绑定的验证函数启动数据验证。

在一切的数据都验证经过期会前往 True. 这就象征着你可以安心的经常使用这些表复数据了。

只需有一个字段验证不经过,它都会前往 False. 这时就须要咱们前往数据给用户,让他们来纠正一下失误数据。

接上去咱们将会看到在数据验证失败时,如何把失误信息显示给用户。

当 validate_on_submit() 方法前往 True 的时刻,咱们的视图函数又会调用两个新的函数。

它们都是从Flask 中引入的,flash 函数用来在下一个关上的页面中显示定义的信息。

咱们如今用它用来做调试。

由于咱们如今还没有做用户登录模块, 所以只须要把用户提交过去的数据显示一下就行了。

flash 函数十分有用,比如为用户的一些操作提供信息反应。

flash 函数提供的信息不会智能出如今咱们的网站页面中,所以咱们须要做点事件让它在页面中显示进去。

为了让咱们一切页面都能有这项激动人心的性能,所以就把它参与到基础模板中吧, 上方是降级后的基础模板 (fileapp/templates/):htmlhead{% if title %}title{{title}} - microblog/title{% else %}titlemicroblog/title{% endif %}/headbodydivMicroblog: a href=/indexHome/a/divhr{% with messages = get_flashed_messages() %}{% if messages %}ul{% for message in messages %}li{{ message }} /li{% endfor %}/ul{% endif %}{% endwith %}{% block content %}{% endblock %}/body/html模板中显示 flash 信息的性能宿愿你能明确。

在视图函数中咱们经常使用的另一个新函数就是 redirect. 这个函数会通知用户的阅读器跳转到指定的地址。

在咱们的视图函数中,咱们经常使用它跳转到了首页。

留意跳转完结后页面上还会显示 flash 函数传递的信息哦。

激动人心的时辰到了,运转咱们的程序吧,看看表单是如何上班的吧。

不要填写表单中的 openid 字段,看看 Required 这个验证函数是如何施展威力,把一切动员空数据的恳求阻止在千里之外。

改善一下字段验证咱们程序目前状况不错,提交不合要求的数据会被阻止,还会前往表单让用户修正,基本满足咱们要求。

但仿佛还少点什么。

假设咱们在用户提交数据失败后给用户点揭示,让他们知道什么要素惹起的,岂不妙哉!太幸运了,用 Flask-WTF 可以轻松处置这个疑问。

当表单字段验证失败时, Flask-WTF 会参与一个失误信息到表单对象。

这些信息在模板中也是可以经常使用的,所以咱们只须要在模板中参与一点点物品就OK了。

这个就是咱们参与了验证信息的登录模板 (fileapp/templates/)!-- extend base layout --{% extends %}{% block content %}h1Sign In/h1form action= method=post name=login{{_tag()}}pPlease enter your OpenID:br{{(size=80)}}br{% for error in %}span style=color: red;[{{error}}]/span{% endfor %}br/pp{{_me}} Remember Me/ppinput type=submit value=Sign In/p/form{% endblock %}咱们仅在 openid 字段的左边参与了一个循环语句,它会把openid字段验证失败的信息都显示进去。

不论你的表单有多少字段,一切表单字段验证失败的失误信息都可以用 .字段名 这种形式来经常使用。

这个表单中咱们的是 。

为了让失误信息惹起用户的留意,咱们还给信息参与了显示白色的 css 样式。

处置 OpenID 登录事实生存中,咱们发现有很多人都不知道他们领有一些公共账号。

一局部大牌的网站或服务商都会为他们的会员提供公共账号的认证。

举个栗子,假设你有一个 google 账号,其实你就有了一个公共账号,相似的还有 Yahoo, AOL, Flickr 等。

为了繁难咱们的用户能繁难的经常使用他们的公共账号,咱们将把这些公共账号的链接参与到一个列表,这样用户就不用自手工输入了。

咱们要把一些提供应用户的公共账号服务约定义到一个列表外面,这个列表就放到性能文件中吧 ():?789CSRF_ENABLED = TrueSECRET_KEY = you-will-never-guessOPENID_PROVIDERS = [{ name: Google, url: { name: Yahoo, url: { name: AOL, url: { name: Flickr, url: { name: MyOpenID, url:}]接上去就是要在咱们的登录视图函数中经常使用这个列表了(/login, methods = [GET, POST])def login():form = LoginForm()if _on_submit():flash(Login requested for OpenID= + + , remember_me= + str(_))return redirect(/index)return render_template(,title = Sign In,form = form,providers = [OPENID_PROVIDERS])咱们从 中引入了公共账号服务商的性能列表,而后把它作为一个参数经过 render_template 函数引入到模板。

接上去要做的我想你也猜失掉,咱们须要在登录模板中把这些服务商链接显示进去。

!-- extend base layout --{% extends %}{% block content %}script type=text/javascriptfunction set_openid(openid, pr){u = (username)if (u != -1) {// openid requires usernameuser = prompt(Enter your+ pr +username:)openid = (0, u) + user}form = [login];[openid] = openid}/scripth1Sign In/h1form action= method=post name=login{{_tag()}}pPlease enter your OpenID, or select one of the providers below:br{{(size=80)}}{% for error in %}span style=color: red;[{{error}}]/span{% endfor %}br|{% for pr in providers %}a href=javascript:set_openid({{}}, {{}});{{}}/a |{% endfor %}/pp{{_me}} Remember Me/ppinput type=submit value=Sign In/p/form{% endblock %}这次的模板参与的物品仿佛有点多。

一些公共账号须要提供用户名,为了处置这个咱们用了点 javascript。

当用户点击相关的公共账号链接时,须要用户名的公共账号会揭示用户输入用户名, javascript 会把用户名处置成可用的公共账号,最后再拔出到 openid 字段的文本框中。

上方这个是在登录页面点击 google 链接后显示的截图:

用Python 的Flask成功 RESTful API(学习篇)

本文旨在引见如何经常使用Python的Flask框架成功RESTful API,并提供一个繁难的实例协助了解。

API,全称为运行程序编程接口,是计算机与网站数据交互的形式。

类比于家用电器的插头,用户经过API与主机启动数据操作,无需了解其外部上班原理。

RESTful API,是一种遵照REST(Representational State Transfer)格调设计的API。

其外围准则包含有形态、缓存支持、客户端-主机架构等,使API易于了解、经常使用和保养。

接上去,咱们将具体解析Flask框架及其运行。

Flask是一个轻量级的Python Web框架,准许开发者轻松构建RESTful API。

运转上方的代码,主机将在本地运转,并输入“Hello World!”。

该代码示例展现了Flask运行的基本结构,包含导入Flask类、创立运行实例、定义路由、处置恳求,以及运转主机。

无了解装璜器之前,咱们先启动简明预备,如创立函数对象,了解可变参数和主要字参数。

装璜器的作用在于为函数参与额外性能,如日志记载、性能监控等。

经过定义装璜器函数,可认为多个函数参与相反的行为。

成功一个繁难的Flask运行,经过定义路由和处置函数,成功基本的HTTP交互,例如GET、POST、PUT、DELETE等。

RESTful API设计时,通常遵照HTTP方法与资源相关联的准则。

设计URL时,需思考资源、版本号及参数,以确保结构明晰、易于保养。

成功一个To Do List运行,经过RESTful接口,用户可以创立、查问、修正或删除义务。

在设计接口时,需思考安保性、性能和可裁减性。

为了简化接口经常使用,可以创立辅佐函数生成完整的URL,提高开发效率。

总结,经常使用Flask框架成功RESTful API,须要了解API的基本概念、Flask的外围性能及RESTful设计准则。

同时,还需关注性能优化、安保性和易用性。

本文提供了一个基本的实例,协助开发者入门。

在成功API时,还需思考经常使用真正的数据库,以顺应实践运行场景。

虽然内存数据结构在示例中经常使用,但在实践开发中,应经常使用耐久化存储,确保数据的安保性和牢靠性。

在后续开发中,开发者应始终学习和通常,以优化自己的API设计和开发才干。

相关内容 查看全部