찾다
백엔드 개발파이썬 튜토리얼Python의 웹 프레임워크(Flask)에 대한 자세한 설명(코드 예)

flask

flask是一个Python编写的Web 微框架,让我们可以使用Python语言快速实现一个网站或Web服务。

Flask 사용

함수를 작성할 때 모든 사람이 사용하도록 하려면 플라스크를 사용해야 이 목표를 달성할 수 있습니다.

  1. falsk.Flask 클래스 가져오기

  2. Flask 개체 인스턴스화

  3. 바인드 라우팅

  4. Flask 애플리케이션 실행

# 1. 导入Flask类;
from flask import  Flask

# 2. 实例化一个Flask对象;
#     __name__是模块的名称或者包的名称
#     作用: 根据这个参数确定flask应用的路径, 从而快速查找模板和html文件的默认路径;
#     模块就是python文件; 包就是目录(跟普通目录多加一个__init__.py);
#
app = Flask(__name__)

# 3-1.基本路由:通过路由绑定一个视图函数
#   @app.route('/'): 告诉Flask哪个URL才能出发对应的函数, 又称为路由;
#   对应定义了一个视图函数, 也就是返回给用户浏览器显示的内容;
@app.route('/')
def index():
    return  "<h1 id="hello-world">hello world</h1>"

@app.route('/login/')
def login():
    return  "login"

# 4. 运行Flask应用, 可以指定ip和端口;
# '0.0.0.0' 所有的IP都可以访问到;
app.run('0.0.0.0', 9000)

Python의 웹 프레임워크(Flask)에 대한 자세한 설명(코드 예)

Python의 웹 프레임워크(Flask)에 대한 자세한 설명(코드 예)

라우팅 및 변수 규칙

Flask 프레임워크에서 라우팅은 사용자가 요청한 URL을 나타내고 해당 처리 기능을 찾습니다.
공통 라우팅 규칙

  1. URL의 일부를 변수로 표시할 수 있습니다.

  2. Flask 라우팅의 일반적인 변수 유형:

         int, string, float, path, uuid
from flask import Flask, request

app = Flask(__name__)
@app.route('/<id>/comments/')
def comment1(id):
    return "Comment id: %s" %(id)

@app.route('/welcome/<user>/')
def welcome(user):
    app.logger.debug('this is a debug')
    app.logger.warning('this is a warn')
    return user + "用户,欢迎来到SheenStar的主页"

# 特殊的url地址: http://www.baidu.com/query?id=13&name=clotho
@app.route('/query')
def query():
    # 获取url地址里面key值对应的value值;
    id = request.args.get('id')
    name = request.args.get('name')
    return "id: %s, name: %s" %(id, name)
app.run()</user></id>

Python의 웹 프레임워크(Flask)에 대한 자세한 설명(코드 예)
Python의 웹 프레임워크(Flask)에 대한 자세한 설명(코드 예)

Python의 웹 프레임워크(Flask)에 대한 자세한 설명(코드 예)

Re Verse URL

HTTP 요청 데이터 가져오기

클라이언트 URL을 통해 서버 프로그램에 접근하면 두 가지 유형의 메시지가 서버로 전송됩니다. 하나는 HTTP 요청 헤더이고 다른 하나는 요청 데이터입니다.

1. 常见HTTP请求方法:
GET: 1). 获取信息 2). 提交的信息会展示在url: http://www.wewtos.org/login?user=sheen&passwd=star
POST:1). 提交信息, 不在url里面展示, 有利于数据的安全性;

2. 默认路由接受的请求方法为_____get____?
如何指定接收多个HTTP请求方法?
路由: @app.route('/login/', methods=['GET', 'POST'])
视图函数: def login():

3. 如何判断用户请求的HTTP方法?   request.method
 如何获取用户POST请求提交的表单数据? request.form['user']
 
4. 模板渲染(jinja2):
why?    python中生成html不易修改与维护, 所以将html的内容独立到templates目录中;
how?
1). 去当前项目目录下寻找templtes是否存在?再去判断templates目录下是否有login.html文件?
2). 读取这个login.html文件的内容, 作为render_template的返回值;
3). 最终返回给用户浏览器;
render_template('login.html')

5. 重定向和错误?
redirect
return  render_template('login.html', message="用户名或者密码错误")
예: 로그인 점프

#这里的index.html、login.html、404.html是需要自己提前写好的可访问网页
#所有的模板需要放在templates目录下
from flask import Flask, request, render_template, redirect, url_for, abort

app = Flask(__name__)

@app.route('/')
def index():
    return render_template('index.html')

@app.route('/login/', methods=['GET', 'POST'])
def login():
    if request.method == 'POST':
        print(request.form)
        # 1. 如何获取到用户提交的信息呢?
        user = request.form['user']
        passwd = request.form['passwd']

        # 2. 判断用户名和密码是否正确
        if user == 'root' and passwd =='sheen':
            # 如果登陆成功, 跳转到主页;
            return redirect(url_for('index'))
        else:
            # 如果登陆失败, 重新登陆;
            return  render_template('login.html', message="用户名或者密码错误")
    else:
        # 用户是GET请求, 返回登陆的html页面
        # 1. 读取login.html文件的内容
        # 2. 将读取的内容返回给用户界面
        return render_template('login.html')

# 404异常处理: 类似于捕获异常
@app.errorhandler(404)
def not_found(e):
    return  render_template('404.html')

# 抛出异常
@app.route('/user/<user_id>/')
def user(user_id):
    if 0<int app.run></int></user_id>

Python의 웹 프레임워크(Flask)에 대한 자세한 설명(코드 예)

Python의 웹 프레임워크(Flask)에 대한 자세한 설명(코드 예)

위 내용은 Python의 웹 프레임워크(Flask)에 대한 자세한 설명(코드 예)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
이 기사는 segmentfault에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제
파이썬 스크립트가 UNIX에서 실행되지 않는 일반적인 이유는 무엇입니까?파이썬 스크립트가 UNIX에서 실행되지 않는 일반적인 이유는 무엇입니까?Apr 28, 2025 am 12:18 AM

Python 스크립트가 UNIX 시스템에서 실행할 수없는 이유는 다음과 같습니다. 1) CHMOD XYOUR_SCRIPT.PY를 사용하여 실행 권한을 부여하는 권한이 불충분합니다. 2) 잘못되거나 누락 된 Shebang 라인은 #!/usr/bin/envpython을 사용해야합니다. 3) 잘못된 환경 변수 설정, os.environ 디버깅을 인쇄 할 수 있습니다. 4) 잘못된 Python 버전을 사용하여 Shebang 행 또는 명령 줄에 버전을 지정할 수 있습니다. 5) 가상 환경을 사용하여 종속성을 분리하는 의존성 문제; 6) 구문 오류, python-mpy_compileyour_script.py를 사용하여 감지하십시오.

파이썬 어레이를 사용하는 것이 목록을 사용하는 것보다 더 적절한 시나리오의 예를 제시하십시오.파이썬 어레이를 사용하는 것이 목록을 사용하는 것보다 더 적절한 시나리오의 예를 제시하십시오.Apr 28, 2025 am 12:15 AM

파이썬 어레이를 사용하는 것은 목록보다 많은 양의 숫자 데이터를 처리하는 데 더 적합합니다. 1) 배열 더 많은 메모리를 저장, 2) 배열은 숫자 값으로 작동하는 것이 더 빠르며, 3) 배열 힘 유형 일관성, 4) 배열은 C 배열과 호환되지만 목록만큼 유연하고 편리하지 않습니다.

Python에서 목록 대 배열 사용의 성능은 무엇입니까?Python에서 목록 대 배열 사용의 성능은 무엇입니까?Apr 28, 2025 am 12:10 AM

더 나은 orfelexibility 및 mixdatatatatytys, 탁월한 정비 계산 모래 데이터 세트.

Numpy는 대형 배열의 메모리 관리를 어떻게 처리합니까?Numpy는 대형 배열의 메모리 관리를 어떻게 처리합니까?Apr 28, 2025 am 12:07 AM

numpymanagesmemoryforlargearraysefficiedviews, 사본 및 메모리-맵핑 파일

모듈 가져와 목록 또는 배열을 가져와야합니까?모듈 가져와 목록 또는 배열을 가져와야합니까?Apr 28, 2025 am 12:06 AM

ListSinpythondonoTrequireimportingAmodule, whilearraysfromtheArrayModuledOneedAnimport.1) ListSareBuilt-in, Versatile, andCanholdixedDatatypes.2) arraysarraysaremorememorememeMorememeMorememeMorememeMorememeMorememeMorememeMoremeMoremeTeverTopeTeveTeTeTeTeTeTeTeTeTeTeTeTeTeTeTeTeveTeTeTeTeTeTeTeTete가 필요합니다.

파이썬 어레이에 어떤 데이터 유형을 저장할 수 있습니까?파이썬 어레이에 어떤 데이터 유형을 저장할 수 있습니까?Apr 27, 2025 am 12:11 AM

PythonlistsCanstoreAnyDatAtype, ArrayModuLearRaysStoreOneType 및 NUMPYARRAYSAREFORNUMERICALPUTATION.1) LISTSAREVERSATILEBUTLESSMEMORY-EFFICENT.2) ARRAYMODUERRAYRAYRAYSARRYSARESARESARESARESARESARESAREDOREDORY-UNFICEDONOUNEOUSDATA.3) NumpyArraysUraysOrcepperperperperperperperperperperperperperperperferperferperferferpercient

파이썬 어레이에 잘못된 데이터 유형의 값을 저장하려고하면 어떻게됩니까?파이썬 어레이에 잘못된 데이터 유형의 값을 저장하려고하면 어떻게됩니까?Apr 27, 2025 am 12:10 AM

whenyouattempttoreavalueofthewrongdatatypeinapythonaphonarray, thisiSdueTotheArrayModule의 stricttyPeenforcement, theAllElementStobeofthesAmetypecified bythetypecode.forperformancersassion, arraysaremoreficats the thraysaremoreficats thetheperfication the thraysaremorefications는

Python Standard Library의 일부는 무엇입니까? 목록 또는 배열은 무엇입니까?Python Standard Library의 일부는 무엇입니까? 목록 또는 배열은 무엇입니까?Apr 27, 2025 am 12:03 AM

Pythonlistsarepartoftsandardlardlibrary, whileraysarenot.listsarebuilt-in, 다재다능하고, 수집 할 수있는 반면, arraysarreprovidedByTearRaymoduledlesscommonlyusedDuetolimitedFunctionality.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

PhpStorm 맥 버전

PhpStorm 맥 버전

최신(2018.2.1) 전문 PHP 통합 개발 도구

VSCode Windows 64비트 다운로드

VSCode Windows 64비트 다운로드

Microsoft에서 출시한 강력한 무료 IDE 편집기

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

맨티스BT

맨티스BT

Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구