国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

flask-admin 快速打造博客 系列一

李世贊 / 1595人閱讀

摘要:前言我想分享快速打造博客的詳細(xì)教程,可是發(fā)現(xiàn)網(wǎng)易課堂已經(jīng)有相應(yīng)的免費(fèi)課堂了,所以就不打算一點(diǎn)一滴的在這里做筆記,分享這些東西了。所以我主要集中在使用上的講解。可我還是錄了一套視頻效果不是很好,稍后想分享給大家。

前言:

我想分享flask+flask-admin快速打造博客的詳細(xì)教程,可是發(fā)現(xiàn)網(wǎng)易課堂已經(jīng)有相應(yīng)的免費(fèi)課堂了,所以就不打算一點(diǎn)一滴的在這里做筆記,分享這些東西了。所以我主要集中在flask-admin使用上的講解。如果有需要flask可以去參考一下網(wǎng)易的flask課程,其實(shí)想弄一個(gè)講堂的視頻教程,可是沒有足夠好的設(shè)備,而且錄制視頻更像是在表演,感覺一下子適應(yīng)不過來。可我還是錄了一套視頻效果不是很好,稍后想分享給大家。

1,準(zhǔn)備知識(shí)

Flask-admin是基于flask框架的,所以你必須先對(duì)flask有一個(gè)整體的認(rèn)識(shí)和學(xué)習(xí),至少需要知道怎么使用請(qǐng)求,模板響應(yīng),數(shù)據(jù)庫(kù)使用等等。
1)route 請(qǐng)求的路由規(guī)則
2)sqlalchemy 或者其他數(shù)據(jù)框架的增刪改
3)jinja2框架 模板響應(yīng)的使用

2,依賴庫(kù),工具的安裝

python 3.6+版本以上,具體的依賴都放在requirements.txt里面,通過pip3進(jìn)行安裝即可
使用pycharm工具,可以直接官網(wǎng)下載
Pycharm非常簡(jiǎn)單易用,但需要注冊(cè)碼,直接百度搜索:pycharm注冊(cè)碼2017
然后選擇一個(gè)注冊(cè)碼,就可以激活;或者輸入激活的url路徑也可以

3,搭建flask web

1)我們來搭建一個(gè)flask的使用框架,如果還沒有入門的同學(xué),可以借此入一下門。
新建一個(gè)項(xiàng)目:file->new project…..

在控制臺(tái)輸入:python cleanblog.py 啟動(dòng)服務(wù)

2)目錄結(jié)構(gòu)改造
首先,我們建立apps的python包,在apps里面在建一個(gè)blog的python包,這樣設(shè)置的目的就是把所以功能模塊都放在apps下面;
其次,把static和template目錄拉到apps目錄下;
在根目錄,增加config.py 是配置文件,用于配置環(huán)境變量的
gendb.py是基于flask-sqlalchemy來生成數(shù)據(jù)庫(kù)表的

3)整合改造

3.1 整合blueprint
藍(lán)圖相當(dāng)于命名空間,前端路由過來的請(qǐng)求就會(huì)被藍(lán)圖的地址多映射到不同的處理函數(shù)上去。
在blog目錄下的__init__.py 文件輸入:

from flask import Blueprint
blog = Blueprint("main", __name__)
from . import views

然后再apps的__init__.py里注冊(cè)藍(lán)圖:

# 藍(lán)圖
from .blog import blog as main_blueprint
app.register_blueprint(main_blueprint)

其實(shí)藍(lán)圖的注冊(cè)是 app.register_blueprint(main_blueprint, url_prefix="/XXXX")
這里的XXXX是請(qǐng)求到該模塊下的路徑前綴。
弄個(gè)測(cè)試?yán)樱?br>blog 目錄下的views.py有個(gè)函數(shù):

# coding:utf-8
#views.py
from . import blog

@blog.route("/baseinfo",methods=["GET"])
def getbaseinfo():
    return "zhe是 測(cè)試頁(yè)面"

那么請(qǐng)求路徑就是 www.mxxx.com/XXXX/baseinfo

3.2 國(guó)際化
國(guó)際化使用的babelx,一個(gè)比較老的庫(kù),不是很理想,如果自定義后臺(tái)頁(yè)面也許就不需要這么一個(gè)庫(kù);而且現(xiàn)在babelx的版本要跟flask對(duì)得上,不然會(huì)有各種異常的
需要在config.py 配置:
BABEL_DEFAULT_LOCALE = "zh_hans_CN"
然后在apps的__init__.py里注冊(cè):

#國(guó)際化
from flask_babelex import Babel
babel = Babel(app)

3.3 本地日期渲染
使用flask_moment 來渲染模板的日期,需要注冊(cè)到app:
moment.init_app(app)

然后再模板就可以使用:

{% block scripts %}
    {{ super() }}
    {{ moment.include_moment() }}  //在前端中通過方法引用moment.js文件
    {{ moment.locale("zh-cn") }}  //將moment.js本地化,否則渲染出來的時(shí)間日期都是英文的
{% endblock %}

{% block page_content %}
    {{ super() }}
    

Time now is {{ moment(current_time).format("LLL") }}


{% endblock %}

可參考:https://www.cnblogs.com/frank...

4.5 整合sqlalchemy
這是我們的一個(gè)重點(diǎn):
第一步:注冊(cè):
db = SQLAlchemy()
然后注冊(cè)到app里:
db.init_app(app)
第二步:定義model
在apps目錄建立一個(gè)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 主要是生成數(shù)據(jù)庫(kù)表腳本的,可以不用,你直接去數(shù)據(jù)庫(kù)生成也可以的

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
"""

其實(shí)這個(gè)文件是可以通過,然后直接在cmd控制臺(tái)輸入:
Python gendb.py db init (僅第一次使用的時(shí)候需要,生成migrations的目錄包)
python gendb.py db migrate (生成數(shù)據(jù)表)
python gendb.py db upgrade (同步到數(shù)據(jù)庫(kù))

第一版就先搭建到這里,接下來我們進(jìn)入整合flask-admin

github地址 :https://github.com/minsons/xi...
另外,微信也可以打開我的免費(fèi)視頻,效果不怎么樣,其實(shí)看我文檔也夠了:

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/41302.html

相關(guān)文章

  • Oracle APEX 系列文章2:在阿里云上打造屬于你自己的APEX完整開發(fā)環(huán)境 (準(zhǔn)備工作)

    摘要:本系列文章使用的是阿里云的云服務(wù)器,僅僅是因?yàn)樵趪?guó)內(nèi)用阿里云的人比較多而已。在這里我們采用將單獨(dú)部署到上運(yùn)行的方式完成安裝,這也是比較推薦的方式。 本文是鋼哥的Oracle APEX系列文章中的其中一篇,完整 Oracle APEX 系列文章如下: Oracle APEX 系列文章1:Oracle APEX, 讓你秒變?nèi)珬i_發(fā)的黑科技 Oracle APEX 系列文章2:在阿里云上打...

    MAX_zuo 評(píng)論0 收藏0
  • Oracle APEX 系列文章2:在阿里云上打造屬于你自己的APEX完整開發(fā)環(huán)境 (準(zhǔn)備工作)

    摘要:本系列文章使用的是阿里云的云服務(wù)器,僅僅是因?yàn)樵趪?guó)內(nèi)用阿里云的人比較多而已。在這里我們采用將單獨(dú)部署到上運(yùn)行的方式完成安裝,這也是比較推薦的方式。 本文是鋼哥的Oracle APEX系列文章中的其中一篇,完整 Oracle APEX 系列文章如下: Oracle APEX 系列文章1:Oracle APEX, 讓你秒變?nèi)珬i_發(fā)的黑科技 Oracle APEX 系列文章2:在阿里云上打...

    xioqua 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<