* 用于定义 URL 规则和请求方法的映射关系,指定了响应请求的处理函数。
-
render_template(template_name_or_list, **context)
:- 用于渲染模板文件,并传递上下文变量到模板中进行渲染。
-
request.args
:- 获取请求 URL 中的查询参数。
-
request.form
:- 获取 POST 请求发送的表单数据。
-
request.files
:- 获取上传的文件数据。
-
session
:- 用于存储用户会话信息,可以在不同请求之间共享数据。
-
redirect(location, code=302)
:- 重定向到指定的 URL。
-
url_for(endpoint, **values)
:- 生成指定端点对应的 URL。
-
jsonify(*args, **kwargs)
:- 将传入的数据序列化为 JSON 格式,并创建包含 JSON 数据的 Response 对象。
-
make_response(*args)
:- 创建一个自定义的响应对象,可以设置 HTTP 状态码、头部信息等。
-
abort(status_code)
:- 中止请求并返回指定的 HTTP 状态码。
flask基础
搭建flask服务器
from flask import Flask
webapp = Flask(__name__)
if __name__ == '__main__':
webapp.run(port=8080, host='127.0.0.1', debug=True)
导入 Flask 模块,用于创建 Web 应用程序
创建了一个名为
webapp
的 Flask 应用实例启动 Flask 应用程序,监听本地主机的 127.0.0.1 地址的 8080 端口,设置 debug 模式为 True,出现错误时后台显示调试信息
截图显示有一个 GET 请求尝试访问根路径 /
,但是返回了 404 错误,表明应用中没有处理根路径的路由
所以要添加url路由,观察如下代码:
from flask import Flask
webapp = Flask(__name__)
@webapp.route('/')
def index():
return "这是一个测试页面"
if __name__ == '__main__':
webapp.run(port=8080, host='127.0.0.1', debug=True)
使用装饰器
@webapp.route('/')
调用route路由,括号里给定参数,/符号默认为首页当路由定位到这个默认的页面时,就调用这个index函数的返回内容。
所以访问127.0.0.1:8080时,实际上默认访问的是127.0.0.1:8080/ 这个/ 就根据路由走到了index函数
返回一个正常的页面了
正常来说访问一个页面的时候,返回的是html的精美页面,那么如何实现呢?
定义html
使用templates模板定义页面的html
在当前项目中新建目录:templates
html页面编写
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>我的网页</title>
</head>
<body>
<h1>欢迎来到我的网页!</h1>
<p>这是一个简单的 HTML 示例。</p>
</body>
</html>
from flask import Flask
from flask import render_template
webapp = Flask(__name__)
@webapp.route('/')
def index():
return render_template('index.html')
if __name__ == '__main__':
webapp.run(port=8080, host='127.0.0.1', debug=True)
导入render_template方法
调用该方法指定 index.html
因为flask框架在使用这个模板函数时,默认去寻找项目文件夹下的templates文件夹里的html文件
render_template传参变量
如果想通过render_template方法传输数据,在html文件中显示出来,需要在render_template函数中加入数据参数,如data=msg
html编写格式:{{变量}}
from flask import Flask
from flask import render_template
webapp = Flask(__name__)
@webapp.route('/')
def index():
msg = "Welcome"
return render_template('index.html', data=msg)
if __name__ == '__main__':
webapp.run(port=8080, host='127.0.0.1', debug=True)
加了变量msg,render_template方法中制定了data数据
html编写加上{{data}},调用变量内容
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>我的网页</title>
</head>
<body>
<h1>欢迎来到我的网页!</h1>
<p>这是一个简单的 HTML 示例。</p>
{{data}} # 显示传递变量的内容 Welcome
</body>
</html>
定义图片
如果想在该页面添加图片或者css、js文件,就需要使用到flask框架默认设置的static目录方式,即将这些图片、css、js文件存放到项目目录下的static目录,然后使用路由指向。
创建static目录,存入图片
html编写
添加如下代码:
<img src="{{ url_for('static', filename='风景.webp') }}" alt="风景图片">
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>网页标题</title>
</head>
<body>
<h1>欢迎来到我的网页!</h1>
<img src="{{ url_for('static', filename='风景.webp') }}" alt="风景图片">
<p>这是一个简单的 HTML 示例。</p>
{{data}}
</body>
</html>
url_for函数用于生成静态文件的 URL,将定义的静态文件显示到页面上
flask入门
网站多域名
from flask import Flask
from flask import render_template
webapp = Flask(__name__)
@webapp.route('/')
def index():
return render_template('index.html')
@webapp.route('/login')
def login():
return render_template('login.html')
if __name__ == '__main__':
webapp.run(port=8080, host='127.0.0.1', debug=True)
再main文件里定义多个url路由
访问网址 127.0.0.1/login后,调用login.html
用户登陆的login.html
<!DOCTYPE html>
<html>
<head>
<title>User Login</title>
</head>
<body>
<h2>User Login</h2>
<form action="/login" method="post">
<div>
<label for="username">Username:</label>
<input type="text" id="username" name="username">
</div>
<div>
<label for="password">Password:</label>
<input type="password" id="password" name="password">
</div>
<div>
<input type="submit" value="Login">
</div>
</form>
</body>
</html>
访问127.0.0.1/login:
网站之间超链接跳转
访问默认网址,网页显示一个可点击的链接可跳转到其他界面,可以使用a超链接实现使用url_for函数
from flask import Flask
from flask import render_template
webapp = Flask(__name__)
@webapp.route('/')
def index():
return render_template('index.html')
@webapp.route('/info')
def info():
return render_template('info.html')
if __name__ == '__main__':
webapp.run(port=8080, host='127.0.0.1', debug=True)
index.html编写加入a超链接
<ul>
<li><a href="/info">去看相关介绍说明</a></li>
</ul>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>网页标题</title>
</head>
<body>
<h1>欢迎来到我的网页!</h1>
<img src="{{ url_for('static', filename='风景.webp') }}" alt="风景图片">
<p>这是一个简单的 HTML 示例。</p>
{{data}}
<ul>
<li><a href="/info">去看相关介绍说明</a></li>
</ul>
</body>
</html>
点击**“去看相关介绍说明”则跳转到/info****这个界面**
info.html
<!DOCTYPE html>
<html>
<head>
<title>Flask常用方法介绍</title>
</head>
<body>
<p><strong>route(rule, methods=['GET']):</strong> 用于定义 URL 规则和请求方法的映射关系,指定了响应请求的处理函数。</p>
<p><strong>render_template(template_name_or_list, **context):</strong> 用于渲染模板文件,并传递上下文变量到模板中进行渲染。</p>
<p><strong>request.args:</strong> 获取请求 URL 中的查询参数。</p>
<p><strong>request.form:</strong> 获取 POST 请求发送的表单数据。</p>
<p><strong>request.files:</strong> 获取上传的文件数据。</p>
<p><strong>session:</strong> 用于存储用户会话信息,可以在不同请求之间共享数据。</p>
<p><strong>redirect(location, code=302):</strong> 重定向到指定的 URL。</p>
<p><strong>url_for(endpoint, **values):</strong> 生成指定端点对应的 URL。</p>
<p><strong>jsonify(*args, **kwargs):</strong> 将传入的数据序列化为 JSON 格式,并创建包含 JSON 数据的 Response 对象。</p>
<p><strong>make_response(*args):</strong> 创建一个自定义的响应对象,可以设置 HTTP 状态码、头部信息等。</p>
<p><strong>abort(status_code):</strong> 中止请求并返回指定的 HTTP 状态码。</p>
</body>
</html>
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)
img-jVZNBNxl-1713604171274)]
[外链图片转存中…(img-mSYbUMpU-1713604171275)]
[外链图片转存中…(img-GpULJ2Fj-1713604171275)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)