社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Python web开发:Flask的项目配置

python • 6 年前 • 501 次点击  

认识web

url详解:

URLUniform Resource Locator的简写,统一资源定位符。

一个URL由以下几部分组成:

scheme://host:port/path/?query-string=xxx#anchor
  • 1

  • scheme:代表的是访问的协议,一般为http或者https以及ftp等。

  • host:主机名,域名,比如www.baidu.com

  • port:端口号。当你访问一个网站的时候,浏览器默认使用80端口。

  • path:查找路径。比如:www.jianshu.com/trending/now,后面的trending/now就是path

  • query-string:查询字符串,比如:www.baidu.com/s?wd=python,后面的wd=python就是查询字符串。

  • anchor:锚点,后台一般不用管,前端用来做页面定位的。

注意:URL中的所有字符都是ASCII字符集,如果出现非ASCII字符,比如中文,浏览器会进行编码再进行传输。

web服务器和应用服务器以及web应用框架:

  • web服务器:负责处理http请求,响应静态文件,常见的有ApacheNginx以及微软的IIS.

  • 应用服务器 :负责处理逻辑的服务器。比如phppython的代码,是不能直接通过nginx这种web服务器来处理的,只能通过应用服务器来处理,常见的应用服务器有uwsgitomcat等。

  • web应用框架:一般使用某种语言,封装了常用的web功能的框架就是web应用框架flaskDjango以及Java中的SSH(Structs2+Spring3+Hibernate3)框架都是web应用框架。

Flask简介:

flask是一款非常流行的Python Web框架,出生于2010年,作者是Armin Ronacher,本来这个项目只是作者在愚人节的一个玩笑,后来由于非常受欢迎,进而成为一个正式的项目。目前为止最新的版本是0.12.2

flask自2010年发布第一个版本以来,大受欢迎,深得开发者的喜爱,并且在多个公司已经得到了应用,flask能如此流行的原因,可以分为以下几点:

  • 微框架、简洁、只做他需要做的,给开发者提供了很大的扩展性。

  • Flask和相应的插件写得很好,用起来很爽。

  • 开发效率非常高,比如使用SQLAlchemyORM操作数据库可以节省开发者大量书写sql的时间。

Flask的灵活度非常之高,他不会帮你做太多的决策,一些你都可以按照自己的意愿进行更改。比如:

  • 使用Flask开发数据库的时候,具体是使用SQLAlchemy还是MongoEngine,选择权完全掌握在你自己的手中。区别于DjangoDjango内置了非常完善和丰富的功能,并且如果你想替换成你自己想要的,要么不支持,要么非常麻烦。

  • 把默认的Jinija2模板引擎替换成其他模板引擎都是非常容易的。

第一个flask程序:

pycharm新建一个flask项目,新建项目的截图如下: 

点击create后创建一个新项目,然后在helloworld.py文件中书写代码:

#coding: utf8

# 从flask框架中导入Flask类
from flask import Flask

# 传入__name__初始化一个Flask实例
app = Flask(__name__)

# app.route装饰器映射URL和执行的函数。这个设置将根URL映射到了hello_world函数上
@app.route('/')
def hello_world():
return 'Hello World!'

if __name__ == '__main__':
# 运行本项目,host=0.0.0.0可以让其他电脑也能访问到该网站,port指定访问的端口。默认的host是127.0.0.1,port为5000
app.run(host='0.0.0.0',port=9000)


然后点击运行,在浏览器中输入http://127.0.0.1:9000就能看到hello world了。需要说明一点的是,app.run这种方式只适合于开发,如果在生产环境中,应该使用Gunicorn或者uWSGI来启动。如果是在终端运行的,可以按 ctrl+c来让服务停止。

pycharm 2018开启debug模式和修改host:

Pycharm 2018中,如果想要开启debug模式和更改端口号,则需要编辑项目配置。直接在app.run中更改是无效的。示例图如下: 

项目配置

设置为DEBUG模式:

默认情况下flask不会开启DEBUG模式,开启DEBUG模式后,flask会在每次保存代码的时候自动的重新载入代码,并且如果代码有错误,会在终端进行提示。

开启DEBUG模式有三种方式:

直接在应用对象上设置:

app.debug = Trueapp.run()

在执行run方法的时候,传递参数进去:

app.run(debug=True)

config属性中设置:

app.config.update(DEBUG=True)

如果一切正常,会在终端打印以下信息:

* Restarting with stat* Debugger is active!* Debugger pin code: 294-745-044* Running on http://0.0.0.0:9000/ (Press CTRL+C to quit)

需要注意的是,只能在开发环境下开启DEBUG模式,因为DEBUG模式会带来非常大的安全隐患。

另外,在开启了DEBUG模式后,当程序有异常而进入错误堆栈模式,你第一次点击某个堆栈想查看变量值的时候,页面会弹出一个对话框,让你输入PIN值,这个PIN值在你启动的时候就会出现,比如在刚刚启动的项目中的PIN值为294-745-044,你输入这个值后,Werkzeug会把这个PIN值作为cookie的一部分保存起来,并在8小时候过期,8小时以内不需要再输入PIN值。这样做的目的是为了更加的安全,让调试模式下的攻击者更难攻击到本站。

pycharm开启debug模式:

配置文件:

Flask项目的配置,都是通过app.config对象来进行配置的。比如要配置一个项目处于DEBUG模式下,那么可以使用app.config['DEBUG] = True来进行设置,那么Flask项目将以DEBUG模式运行。在Flask项目中,有四种方式进行项目的配置:

直接硬编码:

app = Flask(__name__)
app.config['DEBUG'] = True

因为app.configflask.config.Config的实例,而Config类是继承自dict ,因此可以通过update方法:

app.config.update(
DEBUG=True,
SECRET_KEY='...'
)

如果你的配置项特别多,你可以把所有的配置项都放在一个模块中,然后通过加载模块的方式进行配置,假设有一个settings.py模块,专门用来存储配置项的,此时你可以通过app.config.from_object()方法进行加载,并且该方法既可以接收模块的的字符串名称,也可以模块对象:

# 1. 通过模块字符串

app.config.from_object('settings')

# 2. 通过模块对象

import settings
app.config.from_object(settings)

也可以通过另外一个方法加载,该方法就是app.config.from_pyfile(),该方法传入一个文件名,通常是以.py结尾的文件,但也不限于只使用.py后缀的文件:

app.config.from_pyfile('settings.py',silent=True)

# silent=True表示如果配置文件不存在的时候不抛出异常,默认是为False,会抛出异常。

作者:南窗客斯黄

源自:

https://blog.csdn.net/nunchakushuang/article/list/2


今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/JPti39vs5P
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/23233
 
501 次点击