Minor update to how the secret key is generated in the production environment.
parent
bfe6ebc140
commit
86aedf7ec5
1 changed files with 30 additions and 1 deletions
|
|
@ -97,7 +97,7 @@ We'll create 4 modules, a user module (manage user's registration, login, lost p
|
||||||
DEBUG = False
|
DEBUG = False
|
||||||
|
|
||||||
ADMINS = frozenset(['youremail@yourdomain.com'])
|
ADMINS = frozenset(['youremail@yourdomain.com'])
|
||||||
SECRET_KEY = 'SecretKeyForSessionSigning'
|
SECRET_KEY = 'This string will be replaced with a proper key in production.'
|
||||||
|
|
||||||
SQLALCHEMY_DATABASE_URI = 'sqlite:///' + os.path.join(_basedir, 'app.db')
|
SQLALCHEMY_DATABASE_URI = 'sqlite:///' + os.path.join(_basedir, 'app.db')
|
||||||
DATABASE_CONNECT_OPTIONS = {}
|
DATABASE_CONNECT_OPTIONS = {}
|
||||||
|
|
@ -402,6 +402,9 @@ Finally, a simple `/app/templates/users/profile.html`:
|
||||||
Here is the `/app/__init__.py` :
|
Here is the `/app/__init__.py` :
|
||||||
|
|
||||||
```python
|
```python
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
|
||||||
from flask import Flask, render_template
|
from flask import Flask, render_template
|
||||||
from flask.ext.sqlalchemy import SQLAlchemy
|
from flask.ext.sqlalchemy import SQLAlchemy
|
||||||
|
|
||||||
|
|
@ -410,6 +413,32 @@ Here is the `/app/__init__.py` :
|
||||||
|
|
||||||
db = SQLAlchemy(app)
|
db = SQLAlchemy(app)
|
||||||
|
|
||||||
|
########################
|
||||||
|
# Configure Secret Key #
|
||||||
|
########################
|
||||||
|
def install_secret_key(app, filename='secret_key'):
|
||||||
|
"""Configure the SECRET_KEY from a file
|
||||||
|
in the instance directory.
|
||||||
|
|
||||||
|
If the file does not exist, print instructions
|
||||||
|
to create it from a shell with a random key,
|
||||||
|
then exit.
|
||||||
|
"""
|
||||||
|
filename = os.path.join(app.instance_path, filename)
|
||||||
|
|
||||||
|
try:
|
||||||
|
app.config['SECRET_KEY'] = open(filename, 'rb').read()
|
||||||
|
except IOError:
|
||||||
|
print('Error: No secret key. Create it with:')
|
||||||
|
full_path = os.path.dirname(filename)
|
||||||
|
if not os.path.isdir(full_path):
|
||||||
|
print('mkdir -p {filename}'.format(filename=full_path))
|
||||||
|
print('head -c 24 /dev/urandom > {filename}'.format(filename=full_path))
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
if not app.config['DEBUG']:
|
||||||
|
install_secret_key(app)
|
||||||
|
|
||||||
@app.errorhandler(404)
|
@app.errorhandler(404)
|
||||||
def not_found(error):
|
def not_found(error):
|
||||||
return render_template('404.html'), 404
|
return render_template('404.html'), 404
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue