网站架构了解
通过flask搭建,简单的网站,实现注册登录效果,初步了解搭建网页的基本架构。
前提准备
- html在开发中最主要的一些标签知识
- flask中自带的接收信息给后台的语法
1)html基础标签的使用
<h1>用于强调文本内容,放大字体</h1>/* 行内标签&&块状标签 */
1. 行内标签:字符多长就占多长的空间,内容会不断的添加在行后
<span>行内标签</span>2. 块状标签,就独占一整行的内容空间
<div></div>
<table></table>3. input系列标签
<input type="text" /> 这是一个文本框
<input type="password" /> 这是一个密码框,用于输入密码
<input type="radio" /> 这是一个单选框,用于多选一
<input type="checkbox" /> 这是一个多选框,用于多选多
<input type="file" /> 这是一个文件上传按钮,点击后自动打开文件管理系统
<input type="submit" value="提交"/> 这是一个用于提交表单的按钮,在做用户注册和用户登录时经常用到
<input type="button" value="提交"/> 这是一个普通的按钮,经常和点击发生事件结合在一起,也就是信号与槽。
<input type="reset" value="重置" /> 当你账号和密码都出现错误的时候你可以点击重置按钮,实现清密码框的内容4. 下拉框
1)单选,eg.选择一个你现在居住的城市
<select><option>北京</option><option>上海</option><option>广州</option>
</select>2)多选,eg.多选题
<select multiple><option>选择A</option><option>选择B</option><option>选择C</option><option>选择D</option>
</select>5. 多行文本输入,这个文本框的右下角可以拉伸框的大小,然后行数可以是整数也可以是小数,而且rows设定的行数并不是只能输入这么多行的内容,而是在进入也面后,输入框的高度。
<textarea rows="行数"></textarea>
2)基于前面学的flask
- 用户发出get请求时,网页内容信息会拼接在网络路径上。
- 用户发出post请求,网页内容不会显示在网络路径上,因此安全性相对get较高,常用于注册和登录中的请求。
下面是注册的基础html界面代码
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<h1>用户注册</h1>
<form method="post" action="/post/reg">
<div>用户名:<input type="text" name="user"/>密码:<input type="password" name="pwd"/>
</div><div>性别:<input type="radio" name="gender" value="man">男<input type="radio" name="gender" value="woman">女
</div>
<div>爱好:<input type="checkbox" name="hobby" value="10">篮球<input type="checkbox" name="hobby" value="20">足球<input type="checkbox" name="hobby" value="30">乒乓球<input type="checkbox" name="hobby" value="40">棒球
</div>
<div>城市:<select name="city"><option value="bj">北京</option><option value="sh">上海</option><option value="sz">深圳</option></select>
</div>
<div><div>擅长领域:</div><select name="skill" multiple><option value="100">打游戏</option><option value="200">睡觉</option><option value="300">吃饭</option><option value="400">刷抖音</option></select>
</div>
<div>备注:<textarea name="more"></textarea>
</div><div> <input type="submit" value="submit按钮"></div>
</form>
</body>
</html>
-
从以上代码可以看出,所有的内容都被标签所包裹
-
在标签的尖括号中,method指定了用户请求类型为post,action是将动态信息传递给了后台flask框架对应的引用下:
-
在实现性别选择的时候,会在input标签中加入name,且保证name赋值的内容相同,是为了,避免同时可选择男好女,这种逻辑错误!
-
可观察到,每个input的标签中都会有value,是因为,在将数据返回给后天的时候,通常用字典的格式,所以要有key,才能接住对应的值!
-
在input标签中都设置的有name是为了,在数据返回时,能找到对应想返回的内容
@app.route('/post/reg', methods=['POST'])
def post_register():# 1.接收用户通过POST形式发送过来的数据user = request.form.get('user')pwd = request.form.get('pwd')gender = request.form.get('gender')hobby = request.form.getlist('hobby')city = request.form.get('city')skill = request.form.getlist('skill')more = request.form.get('more')print(user, pwd, gender, hobby, city, skill, more)# 将用户信息写入文件中, 写如Excel或数据库中实现注册。# 2.给用户再返回结果return "注册成功"
- 观察上段代码可以发现,在获取用户输入内容信息时,有的用……get()而有的用……getlist(),所以在接收多行信息(多选内容)时用getlist()。
- 等后期学了Python和数据库的结合时,你就可以将用户信息存入数据库,下次登录通过输入的账号和密码与数据库的用户数据对比,若一样,则登录成功,若不一样则登录失败!
- 在设置登录界面也是有讲究的!首先用户看到登录的界面肯定是get请求,在输入完账号密码后,发送的肯定是post请求,所以flask的逻辑代码段就可以如下怎么写:
@app.route('/login', methods=['GET','POST'])
def login_register():if request.method == 'GET':return render_template('login.html')else:user = request.form.get('username')pwd = request.form.get('password')print(user, pwd)return '登录成功'