在pycharm中运行时报错
你看看是不是你的app.py放错了位置,记住 from app import db ,那个.py文件就叫app.py。如果不是,再检测一下flask有没有安装,如果使用了Anaconda虚拟环境确保虚拟环境安装了flask
【相关推荐】
from flask import Flask
app = Flask(__name__)
@app.route('/') #路由,必须以 / 开始否则报错
def hello_world(): #视图函数
return 'Hello World!'
if __name__ == '__main__':
app.run(host='0.0.0.0', port=8080, debug=True)
Flask 默认拥有内置服务器
看 python 源码,ctrl 加单击
host 默认127.0.0.1只能本机访问,允许外网访问则需改成0.0.0.0
Debug 模式:开启后更改源码实时更新,适用于开发环境
app.config
<Config {'ENV': 'production', 'DEBUG': False, 'TESTING': False, 'PROPAGATE_EXCEPTIONS': None, 'PRESERVE_CONTEXT_ON_EXCEPTION': None, 'SECRET_KEY': None, 'PERMANENT_S
ESSION_LIFETIME': datetime.timedelta(days=31), 'USE_X_SENDFILE': False, 'SERVER_NAME': None, 'APPLICATION_ROOT': '/', 'SESSION_COOKIE_NAME': 'session', 'SESSION_COOK
IE_DOMAIN': None, 'SESSION_COOKIE_PATH': None, 'SESSION_COOKIE_HTTPONLY': True, 'SESSION_COOKIE_SECURE': False, 'SESSION_COOKIE_SAMESITE': None, 'SESSION_REFRESH_EAC
H_REQUEST': True, 'MAX_CONTENT_LENGTH': None, 'SEND_FILE_MAX_AGE_DEFAULT': datetime.timedelta(seconds=43200), 'TRAP_BAD_REQUEST_ERRORS': None, 'TRAP_HTTP_EXCEPTIONS'
: False, 'EXPLAIN_TEMPLATE_LOADING': False, 'PREFERRED_URL_SCHEME': 'http', 'JSON_AS_ASCII': True, 'JSON_SORT_KEYS': True, 'JSONIFY_PRETTYPRINT_REGULAR': False, 'JSO
NIFY_MIMETYPE': 'application/json', 'TEMPLATES_AUTO_RELOAD': None, 'MAX_COOKIE_SIZE': 4093}>
修改环境
app.py
app.config['ENV']='development'
app.config['DEBUG']=True
或将配置文件独立为
settings.py
ENC = 'development'
DEBUG = True
在此文件中port端口设置无效
在app.py导入settings
from flask import Flask
app = Flask(__name__)
import settings
app.config.from_object(settings)
或者app.config.from_pyfile('settings.py')
@app.route('/') #路由
def hello_world(): #视图函数
return 'Hello World!'
if __name__ == '__main__':
app.run(port=8080)
#端口在这改有效
@app.route()
源码:
def route(self, rule, **options):
def decorator(f):
endpoint = options.pop("endpoint", None)
self.add_url_rule(rule, endpoint, f, **options)
return f
return decorator
@app.route('/')
def index():
return 'Index page'
就等效于
def index():
return 'hello'
app.add_url_rule('/index',view_func=index)