国产成人精品18p,天天干成人网,无码专区狠狠躁天天躁,美女脱精光隐私扒开免费观看

python的flask怎么配置

發(fā)布時(shí)間:2021-09-04 11:55 來(lái)源:億速云 閱讀:0 作者:chen 欄目: 開(kāi)發(fā)技術(shù)

這篇文章主要講解了“python的flask怎么配置”,文中的講解內容簡(jiǎn)單清晰,易于學(xué)習與理解,下面請大家跟著(zhù)小編的思路慢慢深入,一起來(lái)研究和學(xué)習“python的flask怎么配置”吧!

  配置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=''

  SESSION_COOKIE_SECURE=True

  SESSION_USE_SIGNER=True

  @staticmethod

  def init_app(app):

  pass

  class DevelopConfig(Config):

  DEBUG = True

  dbinfo = {

  "ENGINE": "",

  "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ā)現上面的env=os.environ.get(‘default’)這個(gè)方法,在我操作的過(guò)程中是沒(méi)法將default傳到給creat_app(),因此,他就獲得不了default相關(guān)配置信息,于是運行后他就會(huì )報錯,如以下報錯信息

  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才報錯的,而這個(gè)是寫(xiě)在setting中的,所以我直接將default賦給env,之后他不會(huì )報錯。,也沒(méi)有出現這個(gè)報錯信息。

  然后第二個(gè)問(wèn)題:

  SESSION_TYPE='redis'

  我在運行的時(shí)候出現了這個(gè)問(wèn)題

  redis.exceptions.ConnectionError: Error 10061 connecting to 127.0.0.1:6379. 由于目標計算機積極拒絕,無(wú)法連接 是由于沒(méi)有啟動(dòng)redis服務(wù),解決方法如下:

  啟動(dòng)后就沒(méi)問(wèn)題了

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自互聯(lián)網(wǎng)轉載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權請聯(lián)系QQ:712375056 進(jìn)行舉報,并提供相關(guān)證據,一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容。

500篇艳妇短篇合午夜人屠| 人妻 日韩 欧美 综合 制服| 亚洲裸男自慰GV网站| 成 人 黄 色 网 站 18| 国产野战无套AV毛片| 成人免费毛片内射美女APP|