基於Python-Flask實現的網站例子

概述

使用Flask寫的體育網站 包括(註冊 論壇 文章評論 組建戰隊 後臺管理)等功能 示例地址文中有寫 萌新 請多指教

詳細

項目示例地址: 網站演示html

1、環境搭建python

 

1. 安裝配置python3.6linux

示例網站使用的是python 3.6.3ajax

下載地址:https://www.python.org/downloads/release/python-363/數據庫

根據本身的系統選擇相應的版本json

 

2. 使用pip 安裝環境 (最好能使用virtualenv建立虛擬環境)
例(沒有使用虛擬環境):flask

命令行進入網站根目錄 就是放有 requirements.txt(內涵全部須要的庫、包括flask)文件的地方 運行:windows

pip3 install -r requirements.txt

等待安裝完成後端

 

2、項目結構以及程序實現api

1.項目結構

說明:

admin 後臺登陸表單以及後臺管理視圖
api 大部分的藉口函數
auth 用戶登錄視圖管理
main 網站主體部分視圖管理以及表單

static 靜態文件存放點

templates html文件以及基礎模版

email.py email操做相關函數
models.py 數據庫相關操做

config.py 網站設置
manage.py 啓動管理

呃……裏面有些奇怪的文件(自我記錄)不要在乎 具體如圖:

QQ圖片20180117104224.png

 

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')
           }
       });

註冊頁面大概長這樣:

QQ圖片20180117112006.png

彈窗使用了sweetalert2 :

QQ圖片20180117110508.png

 

後臺處理:

@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'})

 

 

3、運行前配置以及本地運行測試

 

使用編輯器(本人用的是pycharm)打開config.py文件 進行配置 其中

郵箱跟密碼必須修改 並且要打開該郵箱的smtp服務 139郵箱設置如圖:

QQ圖片20180117113104.png

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

出現

QQ圖片20180117113608.png

表示運行成功 而後打開 http://127.0.0.1:5000 便可

如圖:

QQ圖片20180117113747.png

 

網站後臺入口地址: http://127.0.0.1:5000/manage 用戶名跟密碼在config.py中設置

 

 

萌新所作 望各位大佬多多指點 有bug或者其餘問題請反饋 謝謝了

注:本文著做權歸做者,由demo大師發表,拒絕轉載,轉載須要做者受權

相關文章
相關標籤/搜索