摘要:前言我想分享快速打造博客的詳細教程,可是發現網易課堂已經有相應的免費課堂了,所以就不打算一點一滴的在這里做筆記,分享這些東西了。所以我主要集中在使用上的講解。可我還是錄了一套視頻效果不是很好,稍后想分享給大家。
前言:
我想分享flask+flask-admin快速打造博客的詳細教程,可是發現網易課堂已經有相應的免費課堂了,所以就不打算一點一滴的在這里做筆記,分享這些東西了。所以我主要集中在flask-admin使用上的講解。如果有需要flask可以去參考一下網易的flask課程,其實想弄一個講堂的視頻教程,可是沒有足夠好的設備,而且錄制視頻更像是在表演,感覺一下子適應不過來。可我還是錄了一套視頻效果不是很好,稍后想分享給大家。
1,準備知識Flask-admin是基于flask框架的,所以你必須先對flask有一個整體的認識和學習,至少需要知道怎么使用請求,模板響應,數據庫使用等等。
1)route 請求的路由規則
2)sqlalchemy 或者其他數據框架的增刪改
3)jinja2框架 模板響應的使用
python 3.6+版本以上,具體的依賴都放在requirements.txt里面,通過pip3進行安裝即可
使用pycharm工具,可以直接官網下載
Pycharm非常簡單易用,但需要注冊碼,直接百度搜索:pycharm注冊碼2017
然后選擇一個注冊碼,就可以激活;或者輸入激活的url路徑也可以
1)我們來搭建一個flask的使用框架,如果還沒有入門的同學,可以借此入一下門。
新建一個項目:file->new project…..
在控制臺輸入:python cleanblog.py 啟動服務
2)目錄結構改造
首先,我們建立apps的python包,在apps里面在建一個blog的python包,這樣設置的目的就是把所以功能模塊都放在apps下面;
其次,把static和template目錄拉到apps目錄下;
在根目錄,增加config.py 是配置文件,用于配置環境變量的
gendb.py是基于flask-sqlalchemy來生成數據庫表的
3)整合改造
3.1 整合blueprint
藍圖相當于命名空間,前端路由過來的請求就會被藍圖的地址多映射到不同的處理函數上去。
在blog目錄下的__init__.py 文件輸入:
from flask import Blueprint blog = Blueprint("main", __name__) from . import views
然后再apps的__init__.py里注冊藍圖:
# 藍圖 from .blog import blog as main_blueprint app.register_blueprint(main_blueprint)
其實藍圖的注冊是 app.register_blueprint(main_blueprint, url_prefix="/XXXX")
這里的XXXX是請求到該模塊下的路徑前綴。
弄個測試例子:
blog 目錄下的views.py有個函數:
# coding:utf-8 #views.py from . import blog @blog.route("/baseinfo",methods=["GET"]) def getbaseinfo(): return "zhe是 測試頁面"
那么請求路徑就是 www.mxxx.com/XXXX/baseinfo
3.2 國際化
國際化使用的babelx,一個比較老的庫,不是很理想,如果自定義后臺頁面也許就不需要這么一個庫;而且現在babelx的版本要跟flask對得上,不然會有各種異常的
需要在config.py 配置:
BABEL_DEFAULT_LOCALE = "zh_hans_CN"
然后在apps的__init__.py里注冊:
#國際化 from flask_babelex import Babel babel = Babel(app)
3.3 本地日期渲染
使用flask_moment 來渲染模板的日期,需要注冊到app:
moment.init_app(app)
然后再模板就可以使用:
{% block scripts %} {{ super() }} {{ moment.include_moment() }} //在前端中通過方法引用moment.js文件 {{ moment.locale("zh-cn") }} //將moment.js本地化,否則渲染出來的時間日期都是英文的 {% endblock %} {% block page_content %} {{ super() }}Time now is {{ moment(current_time).format("LLL") }}
{% endblock %}
可參考:https://www.cnblogs.com/frank...
4.5 整合sqlalchemy
這是我們的一個重點:
第一步:注冊:
db = SQLAlchemy()
然后注冊到app里:
db.init_app(app)
第二步:定義model
在apps目錄建立一個models.py文件,就可以在里面定義模型了:
#coding: utf-8 import hashlib from datetime import datetime from . import db #用戶表 class User(db.Model): id = db.Column(db.Integer, primary_key=True) email = db.Column(db.String(64), unique=True, nullable=False) username = db.Column(db.String(64), unique=True, nullable=False) role = db.Column(db.String(64), nullable=True) password_hash = db.Column(db.String(128)) head_img = db.Column(db.String(128), unique=False, nullable=True) create_time = db.Column(db.DateTime, nullable=True,default=datetime.now) def verity_password(originPassword, password): from apps.util import common newpassword = common.md5(originPassword) return password == newpassword def __repr__(self): return "" % self.username
第三步:生成表
gendb.py 主要是生成數據庫表腳本的,可以不用,你直接去數據庫生成也可以的
from flask_script import Manager from flask_migrate import Migrate, MigrateCommand from apps import create_app #app.config.from_object("app.config") # configuration # SQLALCHEMY_DATABASE_URI = "mysql://root:123456@117.48.202.102/flaskAdmin" # app.config["SQLALCHEMY_DATABASE_URI"] = SQLALCHEMY_DATABASE_URI # app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = True app = create_app("config.py") from apps.models import db #db.init_app(app) migrate = Migrate(app,db) manager = Manager(app) manager.add_command("db",MigrateCommand) if __name__ == "__main__": manager.run() """ python gendb.py db init python gendb.py db migrate python gendb.py db upgrade """
其實這個文件是可以通過,然后直接在cmd控制臺輸入:
Python gendb.py db init (僅第一次使用的時候需要,生成migrations的目錄包)
python gendb.py db migrate (生成數據表)
python gendb.py db upgrade (同步到數據庫)
第一版就先搭建到這里,接下來我們進入整合flask-admin
github地址 :https://github.com/minsons/xi...
另外,微信也可以打開我的免費視頻,效果不怎么樣,其實看我文檔也夠了:
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/41302.html
摘要:本系列文章使用的是阿里云的云服務器,僅僅是因為在國內用阿里云的人比較多而已。在這里我們采用將單獨部署到上運行的方式完成安裝,這也是比較推薦的方式。 本文是鋼哥的Oracle APEX系列文章中的其中一篇,完整 Oracle APEX 系列文章如下: Oracle APEX 系列文章1:Oracle APEX, 讓你秒變全棧開發的黑科技 Oracle APEX 系列文章2:在阿里云上打...
摘要:本系列文章使用的是阿里云的云服務器,僅僅是因為在國內用阿里云的人比較多而已。在這里我們采用將單獨部署到上運行的方式完成安裝,這也是比較推薦的方式。 本文是鋼哥的Oracle APEX系列文章中的其中一篇,完整 Oracle APEX 系列文章如下: Oracle APEX 系列文章1:Oracle APEX, 讓你秒變全棧開發的黑科技 Oracle APEX 系列文章2:在阿里云上打...
閱讀 2053·2021-11-11 16:55
閱讀 1395·2021-09-28 09:36
閱讀 1038·2019-08-29 15:21
閱讀 1571·2019-08-29 14:10
閱讀 2757·2019-08-29 14:08
閱讀 1627·2019-08-29 12:31
閱讀 3243·2019-08-29 12:31
閱讀 976·2019-08-26 16:47