>  기사  >  백엔드 개발  >  Python 학습 시작하기(플라스크 기반 웹 애플리케이션)

Python 학습 시작하기(플라스크 기반 웹 애플리케이션)

Y2J
Y2J원래의
2017-04-25 11:12:092530검색

Flask는 매우 뛰어난 웹 프레임워크입니다. 간단하고 확장하기 쉬운 작은 코어를 유지한다는 점이 가장 큰 특징입니다. 다른 것들은 사용자가 마스터하고 쉽게 교체할 수도 있습니다. 커뮤니티는 프로덕션 환경에서 확장에 직접 사용될 수 있습니다. 지금까지 그에 대한 소개가 많이 나온 것 같아요. cnblog에서도 가볍게 검색해보시면 많은 내용을 찾으실 수 있지만, 그래도 몇 가지 아이디어를 드리고 싶고 그냥 요약으로 생각해주세요

배포환경

파이썬 설치

우선 당연히 파이썬 환경을 설치한다 , 공식 홈페이지에 가서 최신 환경을 다운로드 받으세요. (저는 최신 버전 3.6을 선택했습니다.)

그런 다음 주의해서 기록하거나 설치 경로를 선택하세요.

환경변수

다음 환경변수 구성은 java와 거의 동일하며, path; 이후에는 python 설치 경로를 입력합니다. , 그리고 다시 ,; Python 디렉터리에 있는 Scripts 폴더를 입력하고 py와 함께 제공되는 일부 도구(예: pip)를 사용하여

Flask를 설치합니다

구성 pip를 완료한 후 플라스크 설치는 매우 간단합니다. cmd를 입력하여 콘솔에 들어간 후 다음 명령을 입력하세요.

pip3.6 install Flask

개발 도구

일을 잘하려면 먼저 도구를 갈고닦아야 합니다. 저는 개발 도구의 선택이 매우 중요하다고 생각합니다. 공식 홈페이지에서도 다운로드 가능합니다. 버전 shi

개발 시작

먼저 pycharm을 열고 Pure Python 프로젝트를 생성하세요.

프로젝트 생성 이후에는 그냥 빈 프로젝트이고, 개발용 py 파일이 생성되었습니다. 프로젝트 폴더에서 new-->python 파일을 마우스 오른쪽 버튼으로 클릭한 후 선택하세요. 이름은 default라는 이름을 가지고 있으며, 이는 폴더 아래에 default.py 파일을 생성합니다.

Flask 초기 탐색

이 파일에 코드를 입력하세요(Flask 설치가 성공적이었다고 가정):


from flask import Flask #导入Flask类
app=Flask(__name__) #创建Flask类的一个实例

if __name__=='__main__': #Python入口程序 
 app.run(debug=True) #使其运行于本地服务器上

cmd 콘솔의 디렉터리를 프로젝트 디렉터리로 전환합니다.

python default.py

명령을 입력합니다.

Flask 클래스를 가져온 후 스크립트를 실행하면 WSGI 프로그램이 자동으로 생성됩니다.

올바른 프로그램은 그림과 같습니다.

프롬프트에 따라 이때 브라우저에 플라스크의 기본 주소를 입력하면 다음과 같이 표시됩니다.

아직 페이지가 없으므로 모든 액세스가 가능합니다. 모든 주소는 404

설명
debug =true는 디버그 모드를 프로덕션 환경에서 사용해서는 안 된다는 의미입니다! ! !

경로

다음은 Flask가 데코레이터를 사용하여 경로를 구성하는 기본 경로를 만듭니다.

이때

@app.route("/")
def index():
 return "<h1>hello world</h1>"

에 접속하여 페이지는 다음과 같습니다.

반환 내용을 출력하고 이때 콘솔에는 :

상태 코드는 200이며 더 이상 404가 아닙니다.

여기의 데코레이터는 당분간 Java의 주석으로 이해될 수 있습니다. 동시에, 라우팅의 사용법은 일시적으로 j2ee의 서블릿의 주석 라우팅 방법으로 이해될 수도 있습니다.

매개변수를 사용한 라우팅

동시에 Flask는 매개변수를 사용한 라우팅도 지원합니다.


@app.route("/user/<name>")
def user(name):
 return "<h1>hell %s</h1>"%name

브라우저에 입력:

127.0.0.1:5000/user/niufen

이때 입력은

지금은 라우팅에 대해 이야기하고 cmd 콘솔을 입력하고 ctrl+c를 눌러 서버를 종료하고 python을 입력하고 python 명령줄 인터페이스를 입력하면 이때 다양한 실행이 가능합니다. py 문

그런 다음 이 인터페이스의 default.py 객체 아래에서 앱 객체를 가져옵니다.

기본 가져오기 앱에서

그런 다음 이때 Enter를 누르면 앱 개체를 사용하여 다음을 입력할 수 있습니다.

app.url_map

내 디스플레이는 다음과 같습니다.

可以看到,使用一个map存储了此对象下的所有路由,并从内容可以看到 全是get方式,注意其中的static,是存放的静态文件,如图片,顺便提一下,这也体现了flask的一个特点,即它有众多的配置选项,但基本上都在初始状态下有个明确的默认值,比如模板在templates中,图片在static中,虽然这个配置可以修改,但不建议这么做,尤其是刚开始的时候。

from default import app这行代码代表了从default对象中导入app,并在之下可以直接使用app,同样的还有之前的代码 from flask import Flask

python中有两种导入方式,import直接导入和from ... import导入,具体区别可查看py基本语法

如果想让路由为post方式,也很简单:


@app.route("/user",methods=["POST"])
def user():
 name=request.args.get("name")
 return "<h1>hell %s</h1>"%name

即可

请求上下文

flask还有请求上下文对象,即request,如:


from flask import request #页头 导入request对象

@app.route(/req_test)
def req_test():
 val=""
 for key,value in request.args.items():
 val+=" %s = %s <br>"%(key,value)
 return val;

在控制台输入exit()后,继续输入python default.py进入服务器

此时在浏览器中输入url:

127.0.0.1:5000/req_test?age=5&name=abc

此时浏览器中显示为:

测试代码2(假设已导入request对象):


@app.route(/req_test)
def req_test():
 val=""
 for key,value in request.headers.items():
 val+=" %s = %s <br>"%(key,value)
 return val;

浏览器显示为:

flask自带系统上下文共计四个:

current_app 约等于application
g 一个用于临时存储的对象 约等于viewbag
request 与servlet或asp.net中含义大体相同
session 与servlet或asp.net中含义大体相同

响应

flask响应可以使用make_response对象,用法与java servlet中的用法类似:


from flask import make_response #页头,导入make_response对象

@app.route("/res_test")
def res_test():
 response=make_response("<h1>hello world</h1")
 response.set_cookie("name","niufennan")
 return response;

此代码的内容为在响应的时候设置cookie
在浏览器中输入地址:

127.0.0.1:5000/res_test

在页面中显示为黑体hello world,但是可以查看浏览器,发现响应内容已经存入浏览器的cookie中 如图:

其他常用功能:跳转

在web开发中,经常会遇到直接跳转的情况,flask中也提供了redirect方法来实现:


from flask import redirect # 页头,导入redirect对象
@app.route("/")
def index():
 return redirect("www.baidu.com/")

此时访问将直接跳转至百度

其他常用功能:响应码

普通响应码可直接在return的返回字符串后使用,如:


@app.route("/")
def index():
 return "<h1>hello world</h1>",400

访问结果如下:


可以看到,虽然此时页面显示内容不变,但是响应码为400

错误码flask也提供了一个专有的函数:


from flask import abort #导入abort对象

@app.route(&#39;/user/<name>&#39;)
def user(name):
 if name ==&#39;test&#39;:
 abort(500)
 return "<h1>hello %s!</h1>"%name

此代码的功能是当name的值为test是,返回错误码为500,注意此时页面不会显示内容,因为此时程序不由代码控制,而将控制权交给了系统。

至此,flask基础知识已经讲完,现在已经可以做一些简单的程序,但是肯定不会如此的做,就像只用servlet,不用jsp页面或其他模板也可以做出很绚丽的系统,但大部分还是需要jsp页面或其他模板页作为支撑,下一章将说明在系统中如何使用jinja2模板引擎和wtf表单插件。

위 내용은 Python 학습 시작하기(플라스크 기반 웹 애플리케이션)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.