赞
踩
目录
2.4 div和span(body中,div块级标签,span行内标签)
进度来源:最新Python的web开发全家桶(django+前端+数据库)
网址:最新Python的web开发全家桶(django+前端+数据库)_哔哩哔哩_bilibili
- from flask import Flask
- from flask import render_template # 搭配templates文件夹下的html文件使用
-
- app = Flask(__name__) # 实例化一个对象
-
-
- # 修饰器,创建了网址和函数的对应关系,只有访问地址就会执行此函数
- @app.route("/show/info")
- def index():
- # return "中国联通"
- # return "中<h1>国</h1><span style='color:red;'>联通</span>"
-
- # Flask内部会自动打开这个文件,并读取内容,返回,默认去当前文件夹的templates文件夹去找
- return render_template("index.html")
-
-
- if __name__ == '__main__':
- app.run() # 在地址后加/show/info会执行index函数,想要shut需要自己停止

- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>Title</title>
- </head>
- <body>
- <h1>出卖我的爱</h1>
- </body>
- </html>
结果展示:
以UTF-8的格式读取html文件
<meta charset="UTF-8">
网页的标题是Title,即标签页上显示的内容
<title>Title</title>
- <h1>一级标题</h1>
- <h2>二级标题</h2>
- <h3>三级标题</h3>
- <h4>四级标题</h4>
- <h5>五级标题</h5>
- <h6>六级标题</h6>
div:一整行。【块级标签】
span:有多少占多少。【行内标签、内联标签】
- <div>自己占一整行</div>
- <span>内联</span><span>有多少占多少</span>
注意:后期加上CSS可丰富样式
跳转到其他网站:
<a href="https://www.bilibili.com/">点击跳转</a>
跳转到自己网站的其他网址:
- <a href="https://127.0.0.1:5000/get/news">点击跳转</a>
- <a href="/get/news">点击跳转</a>
自结束标签(只有一对<>):
<img src="https://pic1.zhimg.com/80/v2-650e91dd2baf0dfda1be2a0305d81237_720w.webp?source=1940ef5c" />
当需要显示自己的图片时,图片要放在当前目录的static目录下,可设置大小:
<img style="height:100px; width:100px;" src="/static/wbg.png" />
<img style="height:60%;" src="/static/wbg.png" />
<a>和<img>配合使用,可实现点击图片跳转,加入target="_blank"可打开新页面:
- <a href="https://www.mi.com/">
- <img src="https://cdn.cnbj1.fds.api.mi-img.com/mi-mall/9ab5c6d195d2b3dde69683966891d5a9.png" target="_blank"/>
- </a>
<ul>是无序标签,<ol>是有序标签
- <ul>
- <li>中国移动</li>
- <li>中国联通</li>
- </ul>
-
- <ol>
- <li>百度搜索</li>
- <li>百度学术</li>
- </ol>
<thead>表头,<tbody>是表格体,<tr>表示一行。加入border="1"后表格会加上边框
- <table border="1">
- <thead>
- <tr> <th>ID</th> <th>name</th> <th>mail</th> </tr>
- </thead>
- <tbody>
- <tr> <td>1</td> <td>张三</td> <td>qq.com</td> </tr>
- <tr> <td>2</td> <td>李四</td> <td>163.com</td> </tr>
- </tbody>
- </table>
- <!--文本框,输入文字-->
- <input type="text">
-
- <!--密码框,输入密码,显示为黑点-->
- <input type="password">
-
- <!--文件框,点击选择文件-->
- <input type="file">
-
- <!--单选框,一般成对出现,name参数相同时选择互斥-->
- <input type="radio" name="n1">男
- <input type="radio" name="n1">女
-
- <!--复选框,可同时选择多个-->
- <input type="checkbox">篮球
- <input type="checkbox">足球
- <input type="checkbox">棒球
-
- <!--按钮-->
- <input type="button" value="提交"> <!--普通按钮-->
- <input type="submit" value="提交"> <!--可提交表单-->

- <!--单选-->
- <select>
- <option>北京</option>
- <option>上海</option>
- <option>深圳</option>
- </select>
-
- <!--多选,按住shift或者ctrl可实现多选-->
- <select multiple>
- <option>北京</option>
- <option>上海</option>
- <option>深圳</option>
- </select>
- <!--可输入多行文本,rows控制默认显示的行数-->
- <textarea rows="3"></textarea>
浏览器向后端发送请求主要有两种方式:
- # app.py
- from flask import Flask, render_template, request
-
- app = Flask(__name__)
-
-
- @app.route("/register", methods=["GET", "POST"])
- def register():
- if request.method == "GET":
- return render_template("register.html")
- else:
- # 接受用户通过POST请求发送过来的数据,GET请求是request.args
- uname = request.form.get("uname")
- upass = request.form.get("upass")
- gender = request.form.get("gender")
- hobby_list = request.form.getlist("hobby")
- city = request.form.get("city")
- skill_list = request.form.getlist("skill")
- memo = request.form.get("memo")
- print("用户名:", uname)
- print("性别:", gender)
- print("擅长领域:", *skill_list)
- return "注册成功"
-
-
- @app.route("/login", methods=["GET", "POST"])
- def login():
- if request.method == "GET":
- return render_template("login.html")
- else:
- uname = request.form.get("uname")
- upass = request.form.get("upass")
- print("uname:", uname)
- print("upass:", upass)
- return "登陆成功"
-
-
- if __name__ == '__main__':
- app.run()

- <!--/templates/register.html-->
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>用户注册</title>
- <base target="_blank" /> <!--使超链接的参数target="_blank"能够生效-->
- </head>
- <body>
- <h1>
- 用户注册
- <a href="https://www.mi.com/">
- <img src="https://cdn.cnbj1.fds.api.mi-img.com/mi-mall/9ab5c6d195d2b3dde69683966891d5a9.png" style="height:100px; width:100px;" target="_blank" />
- </a>
- </h1>
-
- <!--使用form把需要提交的数据包裹起来,method表示提交方式,action表示提交到哪里-->
- <!--注意:form中需要提交的数据必须有name参数-->
- <!--一般注册请求都是POST-->
- <form method="post" action="/register">
- <div>
- 用户名:
- <input type="text" name="uname">
- </div>
-
- <div>
- 密码:
- <input type="password" name="upass">
- </div>
-
- <div>
- 性别:
- <input type="radio" name="gender" value="male">男
- <input type="radio" name="gender" value="female">女
- </div>
-
- <div>
- 爱好:
- <input type="checkbox" name="hobby" value="basketball">篮球
- <input type="checkbox" name="hobby" value="soccer">足球
- <input type="checkbox" name="hobby" value="pingpang">乒乓球
- </div>
-
- <div>
- 城市:
- <select name="city">
- <option value="beijing">北京</option>
- <option value="tianjin">天津</option>
- <option value="shanghai">上海</option>
- </select>
- </div>
-
- <div>
- 擅长领域:
- <select multiple name="skill">
- <option value="coding">代码</option>
- <option value="writing">写作</option>
- <option value="eating">吃饭</option>
- </select>
- </div>
-
- <div>
- 备注:
- <textarea name="memo"></textarea>
- </div>
-
- <div>
- <input type="button" value="普通按钮">
- <input type="submit" value="提交表单按钮"> <!--与form搭配,提交数据-->
- </div>
- </form>
- </body>
- </html>

- <!--/templates/login.html-->
- <!DOCTYPE html>
- <html lang="en">
- <head>
- <meta charset="UTF-8">
- <title>用户登录</title>
- </head>
- <body>
- <h1>用户登录</h1>
- <form method="post" action="/login">
- <div>
- 用户名:
- <input type="text" name="uname">
- 密码:
- <input type="password" name="upass">
- </div>
- <input type="submit" value="提交登录信息">
- </form>
- </body>
- </html>

用户注册界面如下所示:
用户登录界面如下所示:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。