Après le contenu du premier chapitre, vous pouvez déjà créer quelques pages simples. Tout d'abord, utilisez cette méthode pour créer une page de connexion. Tout d'abord, vous devez créer une méthode de routage de connexion :
@app.route("/login",methods=["GET"]) def login(): html="<form method='post'>" \ "<table>" \ "<tr><td>请输入用户名</td><td><input type='text' name='username'/></td></tr>" \ "<tr><td>请输入密码</td><td><input type='password' name='password'/></td></tr>" \ "<tr><td><input type='submit' value='登录'/></td></tr>" \ "</table>" \ "</post>" return html
Après le retour de cette page, il y a une page de connexion simple, avec les résultats affichés comme suit :
Ensuite, il y a une page de retour après la connexion :
@app.route("/login",methods=["POST"]) def loginPost(): username=request.form.get("username","") password=request.form.get("password","") if username=="test" and password=="123" : return "登录成功" else: return "登录失败"
Entrez Après test et 123, cela montre que la connexion est réussie
Fonctionnellement, c'est certainement implémenté, mais sous d'autres aspects, c'est difficile à dire que c'est un programme qui peut être réellement appliqué, même si, quels que soient les scripts js et les feuilles de style CSS, c'est un cauchemar en termes de maintenance simple, comme l'ajout d'une boîte de code de vérification, je ne pense pas que quiconque penserait que c'est le cas. un travail agréable.
Donc, tout d'abord, nous devons séparer la partie html de la page. Pour cela, flask fournit le moteur de modèle jinja2 pour y parvenir.
Le moteur de modèles jinja2 est également conforme à la convention la plus élémentaire de flask, c'est-à-dire qu'il existe une valeur par défaut de base dans de nombreuses configurations. Par rapport à jinja2, il existe une valeur par défaut la plus importante, à savoir le modèle. Le fichier est placé dans le dossier des modèles, bien que ce dossier puisse être personnalisé, pour l'instant, utiliser la valeur par défaut suffit.
D'accord, créez d'abord le dossier des modèles dans le répertoire racine du projet PyCharm, puis créez le fichier login.html dans le dossier. Bien sûr, la structure des répertoires est la suivante :
<🎜. >
Entrez le code dans login.html comme suit :<!DOCTYPE html> <html> <head> <title>欢迎您登陆--牛博客</title> </head> <body> <form method='post'> <table> <tr><td>请输入用户名</td><td><input type='text' name='username'/></td></tr> <tr><td>请输入密码</td><td><input type='password' name='password'/></td></tr> <tr><td><input type='submit' value='登录'/></td></tr> </table> </form> </body> </html>
from flask import render_template #头部,引入模板渲染方法 @app.route("/login",methods=["GET"]) def login(): return render_template("/login.html") #渲染模板,默认找templates文件夹下的login.html文件
Utilisation de base
from flask import render_template #页头,导入渲染函数 @app.route("/") def index(): return render_template("index.html",site_name='myblog')
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>{{site_name}}</title> </head> <body> <h1>这个站点的名字为 {{site_name}} </h1> </body> </html>
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>myblog</title> </head> <body> <h1>这个站点的名字为 myblog </h1> </body> </html>
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>{{site_name|upper}}</title> </head> <body> <h1>这个站点的名字为 {{site_name}} </h1> </body> </html>
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>MYBLOG</title> </head> <body> <h1>这个站点的名字为 myblog </h1> </body> </html>
capitalize Capitaliser la première lettre minuscule Convertir en minuscule
majuscule Convertir en majuscule
trim Supprimer les espaces de fin
striptages Supprimer les balises html
Sauf ceci. De plus, les variables Jinja2 peuvent également être de types complexes, et vous pouvez même utiliser certaines méthodes courantes de types complexes, telles que :
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>{{site_name[2:]}}</title> </head> <body> <h1>这个站点的名字为 {{site_name}} </h1> </body> </html>
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>blog</title> </head> <body> <h1>这个站点的名字为 myblog </h1> </body> </html>
Les instructions de contrôle sont les fonctions de base d'un modèle Jinja2 fournit également les fonctions correspondantes :
//选择 {% if name=='test' %} 这是测试 {% else %} {{name}},你好 {% endif %} //循环 <ul> {% for blog in blogs%} {{ blog.title }} {% endfor%} </ul>
{% macro render_title(blog)%} <li>{{blog.title}}</li> {% endmacro%}
{% import 'macros.html' as macros %} <ul> {% for blog in blogs %} {{ macros.render_title(blog) }} {% endfor %} </ul>
Jinja2 fournit également une fonctionnalité plus puissante, à savoir l'héritage de modèle. Cela ressemble personnellement un peu au framework Sitemesh de Java. Il doit d'abord créer un modèle de base. html :
La balise block signifie qu'elle peut être modifiée dans le sous-modèle. Dans cet exemple, les parties modifiables sont la tête, le titre et le corps. Voici le code du sous-modèle :<!DOCTYPE html> <html> <head> {% block head %} <meta charset="UTF-8"> <title>{% block title%} {% endblock %} - 牛博客</title> <script src="http://cdn.bootcss.com/jquery/2.2.4/jquery.min.js"></script> {% endblock %} </head> <body> {% block body %} {% endblock %} </body> </html>
{% extends "base.html" %} {% block title %}{{site_name[2:]}}{% endblock %} {% block head %} {{super()}} {% endblock %} {% block body %} <h1>这个站点的名字为 {{site_name}} </h1> {% endblock %}
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>blog</title> </head> <body> <h1>这个站点的名字为 myblog </h1> </body> </html>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!