Python光速入门 - Flask轻量级框架

这篇具有很好参考价值的文章主要介绍了Python光速入门 - Flask轻量级框架。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        FlASK是一个轻量级的WSGI Web应用程序框架,Flask的核心包括Werkzeug工具箱和Jinja2模板引擎,它没有默认使用的数据库或窗体验证工具,这意味着用户可以根据自己的需求选择不同的数据库和验证工具。Flask的设计理念是保持核心简单,同时提供强大的扩展性,用户可以通过添加各种扩展来增加功能,如邮件发送、用户认证、数据库集成等
        然后需要嘱咐的一个事情,一定要注意代码格式,Tab制表符和空格一定要区分开

        pip升级命令:python -m pip install --upgrade pip

FlASK框架安装:

1.软件版本

Flask要求Python的版本在3.4以上

2.创建一个工作目录

my_python_flask(使用makdir命令)

3.创建虚拟环境

python -m venv myenv

4.安装flask框架

pip install flask其他包:


pip install flask-login
pip install flask-openid
pip install flask-mail :为Flask应用程序提供SMTP接口
pip install flask-sqlalchemy :将SQLAlchemy支持添加到Flask应用程序中
pip install flask-mysqldb : 支持数据库操作
pip install mysql-connector-python
pip install flask-whooshalchemy
pip install flask-wtf :添加了WTForms的渲染和验证
pip install flask-babel
pip install guess_language
pip install flipflop
pip install Sijax :使AJAX易于在Web应用程序中使用Python/jQuery库

 Python光速入门 - Flask轻量级框架,Python,python,flask,开发语言,模板方法模式,数据库

5.运行.bat文件

        Python光速入门 - Flask轻量级框架,Python,python,flask,开发语言,模板方法模式,数据库

6.检查安装是否成功

pip freeze

Python光速入门 - Flask轻量级框架,Python,python,flask,开发语言,模板方法模式,数据库

相关依赖解释:

依赖名称

依赖作用

Werkzeug

用于实现WGGI,应用和服务之间的标准Python接口

Jinja

用于渲染页面的模板语言

MarkupSafe 与Jinja共用

在渲染页面时用于避免不可信的输入,防止注入攻击

ItsDangerous

保证数据完整性的安全标志数据,用于保护Flask的session cookie

Click

一个命令行应用的框架,用于提供flask命令,并允许添加自定义管理命令

FlASK框架使用:

1.代码:

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello, World!'

2.FLASK_APP环境变量

set FLASK_APP=flaskone/main/index.py

3.启动命令

python -m flask run

Python光速入门 - Flask轻量级框架,Python,python,flask,开发语言,模板方法模式,数据库

4.运行结果:

Python光速入门 - Flask轻量级框架,Python,python,flask,开发语言,模板方法模式,数据库

调试模式:

命令:

set FLASK_ENV=development

flask run --host=0.0.0.0

Python光速入门 - Flask轻量级框架,Python,python,flask,开发语言,模板方法模式,数据库

路由参数以及路由参数强制转换

@app.route('/user/<username>')

转换器类型

使用

string字符串类型

< string:name >

int整数类型

< int:name >

float小数类型

< float:name >

path路径类型

< path:name >

代码:

from flask import Flask
app = Flask(__name__)

@app.route('/hello_world/<int:age>')
def hello_world(age):
    return "获取的年龄是:%s" % age

运行结果:

Python光速入门 - Flask轻量级框架,Python,python,flask,开发语言,模板方法模式,数据库

Flask URL构建 + 重定向

代码:

from flask import Flask,redirect,url_for
app = Flask(__name__)
@app.route('/admin')
def hello_admin():
    return 'Hello Admin'
@app.route('/guest/<guest>')
def hello_guest(guest):
    return 'Hello %s as Guest' % guest
@app.route('/user/<name>')
def user(name):
    if name =='admin':
        return redirect(url_for('hello_admin'))
    else:
        return redirect(url_for('hello_guest',guest = name))
if __name__ == '__main__':
    app.run(debug = True)

输出结果:

浏览器访问地址:http://127.0.0.1:5000/user/admin
浏览器输出地址:http://127.0.0.1:5000/admin

Python光速入门 - Flask轻量级框架,Python,python,flask,开发语言,模板方法模式,数据库

浏览器访问地址:http://127.0.0.1:5000/user/home
浏览器输出地址:http://127.0.0.1:5000/guest/home

Python光速入门 - Flask轻量级框架,Python,python,flask,开发语言,模板方法模式,数据库

结合代码看,发现了问题所在没有?

        1.重定向的标准函数是:redirect
        2.定义的函数user,这个函数很说明问题,以后的代码延伸就是靠这个url_for方法来实现的,至于到底有什么用,相信有经验的开发者已经看出了,这个方法可以作为一个中间件使用,这点非常重要,一定要重视

HTTP请求

        在PHP、Golang、Python等等语言中,常用请求的方式无非有以下几种,这个可以结合前面的url_for来实现Restful风格接口

编号 方法 描述
1 GET 将数据以未加密的形式发送到服务器,这最常用的方法。
2 HEAD 与GET相同,但没有响应主体
3 POST 用于将HTML表单数据发送到服务器。通过POST方法接收的数据不会被服务器缓存。
4 PUT 用上传的内容替换目标资源的所有当前表示。
5 DELETE 删除由URL给出的所有目标资源的所有表示

使用方法,定义路由的时候可以定义HTTP请求方法

from flask import Flask,redirect,url_for
app = Flask(__name__)
@app.route('/test',methods=['GET','POST','HEAD','PUT','DELETE'])
def test():
    return 'echo test'

Python光速入门 - Flask轻量级框架,Python,python,flask,开发语言,模板方法模式,数据库

数据接收:

3.0及以上版本使用

data = request.form.to_dict()
name = data.get('name')
age = data.get('age')

3.0以下版本使用

age = request.agrs.get("age","21")

from flask import Flask, request
app = Flask(__name__)
@app.route("/agrs",methods=['POST'])
def agrs():
    data = request.form.to_dict()
    sex = data.get("sex")
    name = data.get("name")
    return f"姓名:{name}  性别:{sex}"
if __name__ == '__main__':
    app.run()

Flask 模板(模板引擎)

        Jinja2通过render_template()函数渲染HTML文件, Web模板包含用于变量和表达式(这些情况下为Python表达式)的HTML语法散布占位符,这些变量和表达式在模板呈现时被替换为值,模板引擎使用以下分隔符来从HTML转义

{% ... %} 用于多行语句
{{ ... }} 用于将表达式打印输出到模板
{# ... #} 用于未包含在模板输出中的注释
# ... ## 用于单行语句

注意:路径示例(.py文件夹和templates一定要在同一级)

Python光速入门 - Flask轻量级框架,Python,python,flask,开发语言,模板方法模式,数据库

from flask import Flask,render_template
app = Flask(__name__)
@app.route('/test')
def test():
	dic = {"firts":1,"second":2,"thired":3}
	return render_template('test.html',result=dic)
if __name__ == '__main__':
	app.run(debug = True)
<!DOCTYPE html>
<html>
<head>
	<title>测试数据</title>
</head>
<body>
	{% for key, value in result.items() %}
		<div>
			keys:<span>{{key}}</span>
			values:<span>{{value}}</span>
		</div>
	{% endfor %}
</body>
</html>

访问地址:127.0.0.1:5000/test

Python光速入门 - Flask轻量级框架,Python,python,flask,开发语言,模板方法模式,数据库

会话处理:

        所谓的会话,就是客户端浏览器和服务端网站之间一次完整的交互过程。会话的开始是在用户通过浏览器第一次访问服务端网站开始。会话的结束时在用户通过关闭浏览器以后,与服务端断开。所谓的会话控制,就是在客户端浏览器和服务端网站之间,进行多次http请求响应之间,记录、跟踪和识别用户的信息而已。
        在客户端存储信息使用Cookie,token[jwt,oauth]
        在服务器端存储信息使用Session

COOKIE


语法:response.set_cookie("变量名", "变量值", max_age="有效期几秒")

from flask import Flask, make_response, request
app = Flask(__name__)

@app.route('/set_cookie')
def set_cookie():
    response = make_response('set_cookie')
    response.set_cookie('name', 'pure')
    response.set_cookie('age', '18', max_age=3600)
    return response
        
@app.route('/get_cookie')
def get_cookie():
    name = request.cookies.get('name')
    age = request.cookies.get('age')
    return "name={name}&age={age}"
        
@app.route("/del_cookie")
def del_cookie():
    response = make_response("del cookie")
    response.set_cookie("name","",expires=0)
    return response
        
if __name__ == '__main__':
    app.run(debug = True)

SESSION 


SESSION使用session之前,必须先设置秘钥

from flask import Flask, session
app = Flask(__name__)
 
class Config(object):
    SECRET_KEY = "12345678987654321"
 
app.config.from_object(Config)
 
 
@app.route('/set_session')
def set_session():
    session["name"] = "pure"
    session["age"] = 18
    session["book_list"] = [{"title": "book_name"}, {"title": "book_name"}]
    return "set_session"
         
         
@app.route('/get_session')
def get_session():
    name = session.get("name")
    age = session.get("age")
    book_list = session.get("book_list")
    return "name={name} & age={age} & book_list = {book_list}"

@app.route('/del_session')
def del_session():
    if session.get("name"):
        del session["name"]
    return "ok"

if __name__ == '__main__':
    app.run(debug = True)

数据库

相关包:pip install pymysql

数据库连接: 

from flask import Flask
import mysql.connector

app = Flask(__name__)
 
mydb = mysql.connector.connect(
  host="localhost",
  user="root",
  passwd="root",
  database="test"
)
mycursor = mydb.cursor()
 
mycursor.execute("SELECT * FROM user")
 
myresult = mycursor.fetchall()     # fetchall() 获取所有记录
 
for x in myresult:
  print(x)

if __name__ == '__main__':
    app.run()

输出结果:

Python光速入门 - Flask轻量级框架,Python,python,flask,开发语言,模板方法模式,数据库

使用SQLAlchemy链接数据库

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)

# 数据库链接地址
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:root@127.0.0.1:3306/test'
# 动态追踪修改设置,如未设置只会提示警告
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True

db = SQLAlchemy(app)
class User(db.Model):
     id = db.Column('id', db.Integer, primary_key = True)
     username = db.Column(db.String(100))
     sex = db.Column(db.String(100))
     age = db.Column(db.Integer)
     def __init__(self, username, sex, age):
             self.username = username
             self.sex = sex
             self.age = age
          
@app.route("/query",methods=['POST','get'])
def query():
    data = User.query.all()
    for x in data:
      print(x)

if __name__ == '__main__':
    app.run()

输出结果:
Python光速入门 - Flask轻量级框架,Python,python,flask,开发语言,模板方法模式,数据库

        讲到这里,入门课程就已经讲完了,剩下的部分需要自己实操去解决问题了,以后小编会继续撰写相关文章文章来源地址https://www.toymoban.com/news/detail-839910.html

到了这里,关于Python光速入门 - Flask轻量级框架的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 轻量级web开发框架:Flask本地部署及实现公网访问界面

    本篇文章讲解如何在本地安装Flask,以及如何将其web界面发布到公网上并进行远程访问。 Flask是目前十分流行的web框架,采用Python编程语言来实现相关功能。较其他同类型框架更为灵活、轻便、安全且容易上手。它可以很好地结合MVC模式进行开发,开发人员分工合作,小型团

    2024年02月05日
    浏览(38)
  • 深度学习模型部署——Flask框架轻量级部署+阿里云服务器

    ​因为参加一个比赛,需要把训练好的深度学习模型部署到web端,第一次做,在网上也搜索了很多教程,基本上没有适合自己的,只有一个b站up主讲的还不错 https://www.bilibili.com/video/BV1Qv41117SR/?spm_id_from=333.999.0.0vd_source=6ca6a313467efae52a28428a64104c10 https://www.bilibili.com/video/BV1Qv41117

    2024年02月07日
    浏览(53)
  • 轻量级web开发框架Flask本地部署及无公网ip远程访问界面

    本篇文章讲解如何在本地安装Flask,以及如何将其web界面发布到公网上并进行远程访问。 Flask是目前十分流行的web框架,采用Python编程语言来实现相关功能。较其他同类型框架更为灵活、轻便、安全且容易上手。它可以很好地结合MVC模式进行开发,开发人员分工合作,小型团

    2024年02月04日
    浏览(38)
  • 本地部署轻量级web开发框架Flask并实现无公网ip远程访问开发界面

    本篇文章主要讲解如何在本地安装Flask,以及如何将其web界面发布到公网进行远程访问。 Flask是目前十分流行的web框架,采用Python编程语言来实现相关功能。较其他同类型框架更为灵活、轻便、安全且容易上手。它可以很好地结合MVC模式进行开发,开发人员分工合作,小型团

    2024年01月23日
    浏览(37)
  • python轻量级性能工具-Locust

    Locust基于python的协程机制,打破了线程进程的限制,可以能够在一台测试机上跑高并发 1.快慢:衡量系统的处理效率:响应时间 2.多少:衡量系统的处理能力:单位时间内能处理多少个事务(tps) 性能测试根据测试需求最常见的分为下面三类 1 负载测试load testing 不断向服务

    2024年02月02日
    浏览(36)
  • 探秘pLua:轻量级的Python与Lua交互库

    项目地址:https://gitcode.com/esrrhs/pLua 在软件开发中,选择合适的编程语言往往能大大提高效率。而pLua就是这样一款工具,它允许你在Python项目中无缝集成和执行Lua代码,为你的应用带来灵活性和高性能的可能性。 pLua 是一个小型但功能强大的Python模块,由开发者esrrhs创建。它的

    2024年04月16日
    浏览(41)
  • 使用python电脑轻量级控制手机—adb命令和手机投屏

    通过电脑控制手机有多种方式如appnium等,本文介绍的是两种轻量级的方案,使用adb命令刚和手机投屏。 1、手机设置 开发者选项—usb调试—无线调试 2、配对 仅配对时用,第一次配对成功后无需再次使用。 2.1、adb pair 手机IP:端口,下图蓝色部分的ip和端口 2.2、输入配对码。

    2024年02月03日
    浏览(31)
  • C++轻量级单元测试框架

    单元测试是构建稳定、高质量的程序、服务或系统的必不可少的一环。通过单元测试,我们可以在开发过程中及时发现和修复代码中的问题,提高代码的质量和可维护性。同时,单元测试也可以帮助我们更好地理解代码的功能和实现细节,从而更好地进行代码重构和优化。

    2023年04月25日
    浏览(48)
  • python开发构建轻量级卷积神经网络模型实现手写甲骨文识别系统

    手写汉字、手写数字、手写字母识别模型都已经做过很多了,但是手写甲骨文识别这个应该都是很少有听说过的吧,今天也是看到这个数据集就想着基于这批手写甲骨文数据集开发构建识别模型,首先来看下效果图: 接下来看下对应使用的数据集:  共包含40个不同类别对象

    2024年02月08日
    浏览(28)
  • Thonny-适合初学者小白的开箱即用的轻量级 Python IDE

    如果你是一位Python初学者小白,那最适合Thonny它了,如果不是初学者,请选择PyDev和Pycharm。 Thonny是一款面向初学者小白的轻量级 IDE,可以让初学者更好更快的入门上手 Python,而不致于在环境上浪费过多的时间。 取之 Python,用之Python,Thonny 是基于 Python 内置图形库 tkinter开发

    2024年02月16日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包