欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

flask初始化配置文件和使用的方法-創(chuàng)新互聯(lián)

創(chuàng)新互聯(lián)www.cdcxhl.cn八線動態(tài)BGP香港云服務(wù)器提供商,新人活動買多久送多久,劃算不套路!

成都創(chuàng)新互聯(lián)公司自2013年創(chuàng)立以來,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站制作、成都網(wǎng)站制作網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢想脫穎而出為使命,1280元船山做網(wǎng)站,已為上家服務(wù),為船山各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:028-86922220

這篇文章將為大家詳細(xì)講解有關(guān)flask初始化配置文件和使用的方法,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

項(xiàng)目環(huán)境配置

安裝python環(huán)境

校驗(yàn)python 和pip是否安裝好

//查看python安裝
python -V
//查看pip安裝
pip -V

新建項(xiàng)目文件夾 demo

mkdir flaskdemo
cd flaskdemo

安裝 pipenv

pip install pipenv
# 這個(gè)是進(jìn)行虛擬環(huán)境管理的工具,不同的項(xiàng)目分割不同的環(huán)境

進(jìn)入到項(xiàng)目文件夾下,安裝虛擬環(huán)境

//創(chuàng)建虛擬環(huán)境,如果里面有配置文件,會直接安裝配置中的插件
pipenv install
//激活虛擬環(huán)境
pipenv shell
//退出
exit
//卸載包
pipenv uninstall flask
//查看包依賴關(guān)系
pipenv graph
//進(jìn)入虛擬環(huán)境中,查看虛擬環(huán)境的安裝目錄
pipenv --venv

tips:在windows退出環(huán)境時(shí)沒有提示,linux有提示

安裝各種包:一下為基礎(chǔ)通用的各種包,選擇安裝。

# 安裝flask
pipenv install flask
# mysql驅(qū)動
pinenv install cymysql==0.9.1   
# web登錄插件   
pipenv install flask-login
# email插件
pipenv install flask-mail
# 表單字段校驗(yàn)插件
pipenv install WIForms
# 請求庫插件
pipenv install requests
# 數(shù)據(jù)庫映射插件
pipenv install Flask-SQLAlchemy
# 驗(yàn)證登錄相關(guān)
Flask-HTTPAuth==2.7.0
# 其他相關(guān)
Flask-Cors==2.1.0
Flask-WTF==0.14.2

開發(fā)工具: Pycharm,Xampp(mysql),Navicat(數(shù)據(jù)庫可視化工具)

項(xiàng)目的初始化

新建配置文件:新建文件目錄 app/config, 新建配置文件 secure.py 和 settings.py,主要存儲項(xiàng)目中的配置信息

創(chuàng)建自定義 app/libs/redprint.py flask默認(rèn)的是blueprint主要用作模塊的區(qū)分,不建議為了分離視圖是用 blueprint,可以優(yōu)化url的路徑

# 根據(jù) blueprint源碼的實(shí)現(xiàn)
class RedPrint:
    def __init__(self, name):
        self.name = name
        self.mound = []

    def route(self, rule, **options):
        def decorator(f):
            self.mound.append((f, rule, options))
            return f

        return decorator

    def register(self, bp, url_prefix=None):
        """
        將 redprint注冊到 blueprint,實(shí)際調(diào)用 blueprint代碼
        """
        if url_prefix is None:
            url_prefix = '/' + self.name
        for f, rule, options in self.mound:
            endpoint = options.pop("endpoint", f.__name__)
            bp.add_url_rule(url_prefix + rule, endpoint, f, **options)

創(chuàng)建視圖函數(shù)文件

from app.libs.redprint import RedPrint

api = RedPrint('book')

@api.route('/create')
def create_book():
    return 'create_book'

@api.route('/get')
def get_book():
    return 'get_book'

------------------------------------------------------

from app.libs.redprint import RedPrint

api = RedPrint('user')

# url /v1/user/create

@api.route('/create')
def create_user():
    return 'create_user'

@api.route('/get')
def get_user():
    return 'get_user'

在 v1/init.py 注冊 redprint

from flask import Blueprint
from app.api.v1 import book
from app.api.v1 import user

def create_blueprint_v1():
    """
    創(chuàng)建 blueprint 并對 自定義的 redprint進(jìn)行注冊
    :return:
    """
    bp_v1 = Blueprint("v1",__name__)
    book.api.register(bp_v1, url_prefix='/book')
    user.api.register(bp_v1, url_prefix='/user')
    return bp_v1

新建 ginger/app.py文件,flask核心對象相關(guān)的初始化的操作

tips:進(jìn)入之后,可能包不能導(dǎo)入,需要自己手動確認(rèn)設(shè)置虛擬環(huán)境

from flask import Flask
def register_blueprint(app):
    from app.api.v1 import create_blueprint_v1
    blueprint = create_blueprint_v1()
    app.register_blueprint(blueprint, url_prefix='/v1')def create_app():
    app = Flask(__name__)    # 導(dǎo)入配置文件
    app.config.from_object('app.config.settings')
    app.config.from_object('app.config.secure')    # 注冊blueprint
    register_blueprint(app)    return app

其他相關(guān)

from flask import Flask
app = Flask(__name__)
# 導(dǎo)入配置文件,導(dǎo)入的是模塊,app.config 是dict的子類
app.config.from_object('config')
# 定義路由規(guī)則
@app.route("/hello/") #這種方式底層也是通過 add_url_rule實(shí)現(xiàn)的
def hello():
    # 這種方式為函數(shù)視圖
    # 另外一種基于類的視圖(即插視圖),可以復(fù)用便于擴(kuò)展
    return "hello word"
# 啟動,配置debug=true表明為debug模式,每次修改代碼保存之后,會列出詳細(xì)錯(cuò)誤信息,服務(wù)器會自動重啟,不用自己手動重啟
#  這種方式的話不能被外網(wǎng),局域網(wǎng)訪問,只能通過 127.0.0.1這種方式訪問
#  將host =‘0.0.0.0’的方式支持外網(wǎng)訪問
# if 中的語句只在入口文件中執(zhí)行
if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000, debug=app.config['DEBUG'])

URL配置說明

url配置為 "/hello/",可以兼容 url為hello,和url為hello/ 的情況,這種方式flask是通過 url重定向來實(shí)現(xiàn)的,
為了是保證url的唯一性,跟seo的優(yōu)化有關(guān)系. 
一般直接配置為 /hello

def hello():這種為函數(shù)視圖的方式,還有另外一種方式,為基于類的視圖(即插視圖),基于類可以復(fù)用便于擴(kuò)展

路由注冊方式

#這種方式為裝飾器的方式,查看源碼底層也是采用的是 app.add_url_rule這種方式注冊的
@app.route("/hello/")

#直接配置注冊的方式,基于類的視圖這種,必須是這種方式
app.add_url_rule('/hello',view_func=hello)

app.run()參數(shù)

默認(rèn)的app.run(debug=True),這種方式是不能被外網(wǎng),局域網(wǎng)訪問,只能通過127.0.0.1這種方式訪問

將host修改為 '0.0.0.0',可以允許外網(wǎng)訪問,可以指定端口
app.run(host='0.0.0.0',port=5000,debug=True)

統(tǒng)一配置文件:一般的環(huán)境切換更改等方式通過配置文件的方式來,不易出錯(cuò)
創(chuàng)建配置文件 config.py

#config.py 配置示例
# encoding: utf-8
DEBUG =True     
一種方式:直接導(dǎo)入的方式
from config import DEBUG
app.run(debug=TEBUG)
導(dǎo)入模塊的方式,注意路徑,此時(shí) config文件與 app同級,推薦這種方式
app.config.form_object('config')
**tips**
通過app.config 導(dǎo)入的方式,獲取值的時(shí)候 key 必須大寫,app.config['DEBUG'],否則會出錯(cuò).
app.config['DEBUG'],即使在配置文件沒有配置該 DEBUG,打印的時(shí)候 也會有值 false ,因?yàn)?nbsp;DEBUG 是在app.config 默認(rèn)參數(shù),
如果要覆蓋該 DEBUG值,在配置文件中必須大寫

tips:可能存在需要導(dǎo)包的情況,需要設(shè)置虛擬環(huán)境

file->settings->procject->project interpreter ->選擇對應(yīng)的虛擬環(huán)境即可

Restful

實(shí)際經(jīng)驗(yàn)區(qū)分:

標(biāo)準(zhǔn)的restful 適合對外提供,不用考慮太多的業(yè)務(wù)邏輯

在內(nèi)部項(xiàng)目中,如有多個(gè)資源,需要同時(shí)操作,那需要多次的 http請求,而且對資源的設(shè)計(jì)需要很高的要求。

關(guān)于flask初始化配置文件和使用的方法就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。

網(wǎng)站標(biāo)題:flask初始化配置文件和使用的方法-創(chuàng)新互聯(lián)
轉(zhuǎn)載注明:http://aaarwkj.com/article10/hcedo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站改版、網(wǎng)站營銷、面包屑導(dǎo)航、品牌網(wǎng)站設(shè)計(jì)、響應(yīng)式網(wǎng)站、Google

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化
亚洲精品色婷婷一区二区| 久久午夜人妻一区二区| 国产精品久久中文字幕网| 人妻少妇一区二区三区四区| 欧美日韩国产一下老妇| 日本97久久久久久精品| 久久综激情丁香开心婷婷| 免费的黄色片带中文字幕| 精品国产一区=区三区乱码| 国产av麻豆全部免费| 91欧美视频在线观看| 国产成人一区二区三区综合区| 韩国日本午夜福利在线| 一区二区三区人妻系列| 国产在线精品专区第一页 | 亚洲一区二区福利视频| 伊人久久九九精品综合| 久久亚洲春色中文字幕| 人妻天天爽夜夜爽欧美色| 久久女同互慰一区二区三区| 国产熟女一区二区三区正在| 国产精品日韩一区视频| 丰满人妻的诱惑中文字幕| 亚洲码欧美码一区二区三区| 国产一级成人免费视频| 欧美国产精品中文字幕| 中文字幕免费不卡一区| 精品久久久久久亚洲野狼| 五月婷婷少妇中文字幕| 欧美生活一区二区三区| 精品久久久久久久中文字幕| 日韩亚洲av在线免费观看| 欧美午夜精品一二三区| 蜜桃午夜精品一区二区三区| 日本一区二区国产在线| 九九九热视频这里只有精品| 国产一级内射在线视频| 久久96国产精品久久久| 日韩暴露一区二区三区| 色男人天堂网在线视频| 中文字幕日韩av综合在线|