這篇文章主要講解了“python的flask怎么配置”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“python的flask怎么配置”吧!
成都創(chuàng)新互聯(lián)公司是一家專業(yè)提供屯昌企業(yè)網(wǎng)站建設(shè),專注與網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)、HTML5、小程序制作等業(yè)務(wù)。10年已為屯昌眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計(jì)公司優(yōu)惠進(jìn)行中。
配置flask的一些問(wèn)題
首先給上相關(guān)配置代碼
manage.py
import os
from flask_migrate import MigrateCommand
from App import creat_app
from flask_script import Manager
# env=os.environ.get('default')
app =creat_app(env='default')
manager=Manager(app)
manager.add_command("db",MigrateCommand)
if __name__ == '__main__':
manager.run()
init.py
from flask import Flask
from App.ext import init_ext
from App.settings import envs
from App.views import init_blue
def creat_app(env):
app=Flask(__name__)
app.config.from_object(envs.get(env))
init_ext(app)
init_blue(app)
return app
ext.py
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate
from flask_bootstrap import Bootstrap
from flask_session import Session
db=SQLAlchemy()
migrate=Migrate()
def init_ext(app):
db.app=app
db.init_app(app)
migrate.init_app(app,db)
Session(app)
Bootstrap(app)
setting.py
import os
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
def get_db_uri(dbinfo):
engine = dbinfo.get("ENGINE")
driver = dbinfo.get("DRIVER")
user = dbinfo.get("USER")
password = dbinfo.get("PASSWORD")
host = dbinfo.get("HOST")
port = dbinfo.get("PORT")
name = dbinfo.get("NAME")
return '{}+{}://{}:{}@{}:{}/{}'.format(engine, driver, user, password, host, port, name)
class Config:
DEBUG = False
TESTING = False
SQLALCHEMY_TRACK_MODIFICATIONS = False
SECRET_KEY='Rock'
SESSION_TYPE='redis'
SESSION_COOKIE_SECURE=True
SESSION_USE_SIGNER=True
@staticmethod
def init_app(app):
pass
class DevelopConfig(Config):
DEBUG = True
dbinfo = {
"ENGINE": "MySQL",
"DRIVER": "pymysql",
"USER": "root",
"PASSWORD": "123456",
"HOST": "localhost",
"PORT": "3306",
"NAME": "flask",
}
SQLALCHEMY_DATABASE_URI = get_db_uri(dbinfo)
class TestConfig(Config):
TESTING = True
dbinfo = {
"ENGINE": "mysql",
"DRIVER": "pymysql",
"USER": "root",
"PASSWORD": "123456",
"HOST": "localhost",
"PORT": "3306",
"NAME": "flask",
}
SQLALCHEMY_DATABASE_URI = get_db_uri(dbinfo)
class StagingConfig(Config):
dbinfo = {
"ENGINE": "mysql",
"DRIVER": "pymysql",
"USER": "root",
"PASSWORD": "123456",
"HOST": "localhost",
"PORT": "3306",
"NAME": "flask",
}
SQLALCHEMY_DATABASE_URI = get_db_uri(dbinfo)
class ProductConfig(Config):
dbinfo = {
"ENGINE": "mysql",
"DRIVER": "pymysql",
"USER": "root",
"PASSWORD": "123456",
"HOST": "localhost",
"PORT": "3306",
"NAME": "flask",
}
SQLALCHEMY_DATABASE_URI = get_db_uri(dbinfo)
envs = {
'develop': DevelopConfig,
'testing': TestConfig,
'stage': StagingConfig,
'product': ProductConfig,
'default': DevelopConfig,
}
views.py鄭州做人流多少錢(qián) http://www.120zzzzyy.com/
from flask import Blueprint, render_template, request, Response, session
blue=Blueprint('blue',__name__)
def init_blue(app):
app.register_blueprint(blue)
@blue.route("/login",methods=["GET","POST"])
def login():
if request.method=='GET':
return render_template("login.html")
elif request.method=="POST":
username=request.form.get("username")
# return render_template("login.html",username=username)
# response=Response("%s" % username)
# # response.set_cookie('username',username)
# session['username']=username
# return response
return render_template("login.html")
login.html
{% extends 'bootstrap/base.html' %}
{% block navbar %}
Toggle navigation
Brand
Link (current)
Link
Dropdown
Action
Another action
Something else here
Separated link
One more separated link
Submit
Link
Dropdown
Action
Another action
Something else here
Separated link
{% endblock %}
{% block content %}
{% endblock %}
{% block header %}
{% endblock %}
{% block container %}
{% endblock %}
{% block footer %}
{% endblock %}
以上是我寫(xiě)的所有代碼,在配置過(guò)程中遇到了一些問(wèn)題所以拿出來(lái)分享以下,希望能幫助到你們。
第一個(gè)問(wèn)題
首先我發(fā)現(xiàn)上面的env=os.environ.get(‘default’)這個(gè)方法,在我操作的過(guò)程中是沒(méi)法將default傳到給creat_app(),因此,他就獲得不了default相關(guān)配置信息,于是運(yùn)行后他就會(huì)報(bào)錯(cuò),如以下報(bào)錯(cuò)信息
UserWarning: Neither SQLALCHEMY_DATABASE_URI nor SQLALCHEMY_BINDS is set. Defaulting SQLALCHEMY_DATABASE_URI to "sqlite:///:memory:".
Neither SQLALCHEMY_DATABASE_URI nor SQLALCHEMY_BINDS is set.
以下是init_app中提取出來(lái)的信息
if (
'SQLALCHEMY_DATABASE_URI' not in app.config and
'SQLALCHEMY_BINDS' not in app.config
):
warnings.warn(
'Neither SQLALCHEMY_DATABASE_URI nor SQLALCHEMY_BINDS is set. '
'Defaulting SQLALCHEMY_DATABASE_URI to "sqlite:///:memory:".'
)
可以看出他是沒(méi)有獲取到SQLALCHEMY_DATABASE_URI和SQLALCHEMY_BINDS才報(bào)錯(cuò)的,而這個(gè)是寫(xiě)在setting中的,所以我直接將default賦給env,之后他不會(huì)報(bào)錯(cuò)。,也沒(méi)有出現(xiàn)這個(gè)報(bào)錯(cuò)信息。
然后第二個(gè)問(wèn)題:
SESSION_TYPE='redis'
我在運(yùn)行的時(shí)候出現(xiàn)了這個(gè)問(wèn)題
redis.exceptions.ConnectionError: Error 10061 connecting to 127.0.0.1:6379. 由于目標(biāo)計(jì)算機(jī)積極拒絕,無(wú)法連接 是由于沒(méi)有啟動(dòng)redis服務(wù),解決方法如下:
啟動(dòng)后就沒(méi)問(wèn)題了
感謝各位的閱讀,以上就是“python的flask怎么配置”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)python的flask怎么配置這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!
分享題目:python的flask怎么配置
轉(zhuǎn)載來(lái)于:http://bm7419.com/article12/goehgc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開(kāi)發(fā)、網(wǎng)站營(yíng)銷、網(wǎng)站改版、搜索引擎優(yōu)化、服務(wù)器托管、網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)