概述
詳細
項目示例地址: 網站演示
一、環境搭建
1. 安裝配置python3.6
示例網站使用的是python 3.6.3
下載地址:https://www.python.org/downloads/release/python-363/
根據自己的系統選擇相應的版本
2. 使用pip 安裝環境 (最好能使用virtualenv創建虛擬環境)
例(沒有使用虛擬環境):
命令行進入網站根目錄 就是放有 requirements.txt(內涵所有需要的庫、包括flask)文件的地方 運行:
pip3 install -r requirements.txt
等待安裝完成
二、項目結構以及程序實現
1.項目結構
說明:
admin 后台登錄表單以及后台管理視圖
api 大部分的借口函數
auth 用戶登陸視圖管理
main 網站主體部分視圖管理以及表單
static 靜態文件存放點
templates html文件以及基礎模版
email.py email操作相關函數
models.py 數據庫相關操作
config.py 網站設置
manage.py 啟動管理
呃……里面有些奇怪的文件(自我記錄)不要在意 具體如圖:

2. 程序實現
挑選部分代碼進行說明:
前后端交互 使用ajax發送表單內容 提交給后台接口 根據返回內容作出相應處理
$.ajax({
type: "POST",
url: "{{ url_for('api.register') }}",
data: json_data,
dataType: 'json',
contentType: 'application/json',
success: function (data) {
if (data.result === 'ok'){
swal({
title: '注冊成功,一封確認郵件已發往您的郵箱!',
type: 'success',
text: '請登錄后前往郵箱進行驗證! 3秒后自動跳轉到首頁',
timer: 3000,
showConfirmButton: false
}).catch(function () {
window.location.href =
"{{ url_for('auth.register_ok') }}"
});
}
else {
swal('錯誤','注冊失敗!請聯系單位工作人員!', 'error')
}
},
error: function () {
swal('錯誤','注冊失敗!請聯系單位工作人員!', 'error')
}
});
注冊頁面大概長這樣:

彈窗使用了sweetalert2 :

后台處理:
@api.route('/register', methods=['POST'])
def register():
"""用戶注冊"""
# 檢查管理員是否已經注冊
if User.query.get(999) is None:
User.default_user()
# 接收前台傳來的josn數據
json_data = request.get_json()
if json_data is not None:
# 注冊用戶
user = User.from_json(json_data)
db.session.add(user)
db.session.commit()
# 登陸
login_user(user)
# 生產驗證碼並發送鏈接到郵箱
token = user.generate_confirmation_token()
send_email(user.email, '確認你的賬戶', 'auth/email/confirm', user=user,
token=token)
return jsonify({'result': 'ok'})
return jsonify({'result': 'error'})
三、運行前配置以及本地運行測試
使用編輯器(本人用的是pycharm)打開config.py文件 進行配置 其中
郵箱跟密碼必須修改 而且要打開該郵箱的smtp服務 139郵箱設置如圖:

os.environ.get('xxx') 是從環境變量中取出相應的信息 配置服務器時可以在服務器上設置相應的環境變量
class Config:
"""基礎配置,導入所有配置中"""
# 密匙 加密用 修改SecretKey為自己想用的即可
SECRET_KEY = os.environ.get('SECRET_KEY') or "SecretKey"
# 數據庫自動提交數據
SQLALCHEMY_COMMIT_ON_TEARDOWN = True
# 如果設置成 True (默認情況),Flask-SQLAlchemy 將會追蹤對象的修改並且發送信號。
# 這需要額外的內存, 如果不必要的可以禁用它。
SQLALCHEMY_TRACK_MODIFICATIONS = True
# 查詢耗時過長的時間
SLOW_DB_QUERY_TIME = 0.5
# 可以用於顯式地禁用或者啟用查詢記錄
SQLALCHEMY_RECORD_QUERIES = True
# 郵件主題前綴
MAIL_SUBJECT_PREFIX = '<平頂山浩瀚體育>'
# 寄件人名稱
MAIL_SENDER = '平頂山浩瀚體育 <你的郵箱@test.com>'
# 郵箱端口號
MAIL_PORT = 465
# 139郵箱smtp服務器地址
MAIL_SERVER = 'smtp.139.com'
# 發送郵件時使用TLS安全協議 默認為False
MAIL_USE_TLS = False
# 發送郵件時使用SSL安全協議 默認為False
MAIL_USE_SSL = True
# 發送郵件所用的郵箱用戶名以及密碼
MAIL_USERNAME = os.environ.get('MAIL_USERNAME') or '你的郵箱@test.com'
MAIL_PASSWORD = os.environ.get('MAIL_PASSWORD') or '你的郵箱密碼'
# 管理員郵箱
ADMIN_MAIL = os.environ.get('ADMIN_EMAIL') or '你的郵箱@test.com'
# 管理員賬號 默認為admin 可修改 第一次運行時會注冊
ADMIN_USERNAME = os.environ.get('ADMIN_USERNAME') or 'admin'
# 管理員密碼 默認為admin 可修改 第一次運行時會注冊
ADMIN_PASSWORD = os.environ.get('ADMIN_PASSWORD') or 'admin'
# SSL安全協議開關 False會打開
SSL_DISABLE = True
# 禁止轉換asc碼
JSON_AS_ASCII = False
# 存儲圖片的位置
# windows用'app\static\image' linux用'app//static//image' 或自定義
UPLOAD_FOLDER = 'app//static//image'
# 分頁設置 每頁顯示數量
POSTS_PER_PAGE = 15
配置完成后進入網站根目錄、打開命令行運行:
python manage.py deploy
等待運行結束后 輸入
python manage.py runserver --threaded
出現

表示運行成功 然后打開 http://127.0.0.1:5000 即可
如圖:

網站后台入口地址: http://127.0.0.1:5000/manage 用戶名跟密碼在config.py中設置
萌新所做 望各位大佬多多指點 有bug或者其他問題請反饋 謝謝了
注:本文著作權歸作者,由demo大師發表,拒絕轉載,轉載需要作者授權
