您的位置:新葡亰496net > 奥门新萄京娱乐场 > 基本结构,目录结构

基本结构,目录结构

发布时间:2019-07-13 02:21编辑:奥门新萄京娱乐场浏览(160)

    明天察觉了智力落后的真作者。

    Flask框架的学习指南之营造轻松blog系统,flask学习指南

    前边写了一篇flask开采景况搭建,昨天继续,实行七个实战小品种-blog系统。

    blog系统很简短,独有八个页面,然后麻雀虽小五脏俱全。这里目标不是为着做项目而做项目,那篇小说本意是因此本次操演传达以下多少个知识点:

    1、从大局上明白flask项目标目录结构

    2、flask项目标运维机制

    3、flask框架完成MVC架构

    4、flask-sqlalchemy 操作mysql数据库

    一、新建项目:blog系统

    在pycharm中,新建flask项目,如下图:

    图片 1

    成就后的目录结构是这么的:特别简单,二个static文件夹,一个templates文件夹,三个py文件

    图片 2

    如上的目录结构是flask开始时的布局,那么些只好答复非常的小的类型,对于大型复杂的类型,大家须求引进包的田间管理,MVC架构划虚构计。

    二、目录结构重构,引进包处理

    本着地方的布局,在最上层blog3目录下,

       1、新建二个runserver.py文件,作为项目统一入口文件

       2、新建blog文件夹,把已存在的static,templates,blog3.py移到blog文件夹下,然后分别建controller、model文件夹。把blog3.py化名叫__init__.py,

    于今目录如下所示:

    图片 3

    如此就一定于二个大工程组织了:

    1)最上层blog2索引是项目名称,叁个项目下得以包括多少个模块,也正是应用,每一种应用下有本身的配置文件,开头化文件,MVC框架结构。

    2)runserver.py:与使用模块平级,作为项目运营文件

    3)第二级blog2目录:模块名称

           controller目录:MVC中的C,首要寄放在视图函数

           model目录:MVC中的M,首要寄存实体类文件,映射数据库中表

           templates:MVC中的V,存放html文件

           static:静态文件,重要寄存在css,js等公事

           __init__.py:模块初叶化文件,Flask 程序对象的创办必须在 __init__.py 文件里成功, 然后大家就可以安全的导入引用每一个包。

           setting.py:配置文件,数据库用户名密码等等

    三、开荒代码

    1、先把品种运转起来:

    1) 编写__init__.py文件,创造项目对象,代码如下:

    # -*- coding: utf-8 -*-
    from flask import Flask
    
    #创建项目对象
    app = Flask(__name__)
    

    2) 在runserver.py文件中增添如下代码:

    from blog3 import app
    
    @app.route('/')
    def hello_world():
      return 'Hello World!'
    if __name__ == '__main__':
      app.run(debug=True)
    

    3)运行runserver.py文件:

    图片 4

    接下来在浏览器中输入:

    图片 5

    到这里,项目雏形就能够不奇怪运作了,下边包车型地铁业务就简单了,增添始末,让项目有血有肉吗。

    2、设计数据库

    本次演练相比轻松,就多个表,三个user表,叁个篇章表。大家运用python的orm框架flask-sqlalchemy实现表的创导、增加和删除改查效能。

    在model文件夹中加多User.py和Category.py文件,内容如下:

    1) User.py:

    from blog2 import db
    
    class User(db.Model):
      __tablename__ = 'b_user'
      id = db.Column(db.Integer,primary_key=True)
      username = db.Column(db.String(10),unique=True)
      password = db.Column(db.String(16))
    
      def __init__(self,username,password):
        self.username = username
        self.password = password
      def __repr__(self):
        return '<User %r>' % self.username
    

    2) Category.py

    from blog2 import db
    
    class Category(db.Model):
      __tablename__ = 'b_category'
      id = db.Column(db.Integer,primary_key=True)
      title = db.Column(db.String(20),unique=True)
      content = db.Column(db.String(100))
    
      def __init__(self,title,content):
        self.title = title
        self.content = content
      def __repr__(self):
        return '<Category %r>' % self.title
    

    3)在模块目录blog2下新建setting.py文件,配置数据库连接音讯

    # _*_ coding: utf-8 _*_
    
    #调试模式是否开启
    DEBUG = True
    
    SQLALCHEMY_TRACK_MODIFICATIONS = False
    #session必须要设置key
    SECRET_KEY='A0Zr98j/3yX R~XHH!jmN]LWX/,?RT'
    
    #mysql数据库连接信息,这里改为自己的账号
    SQLALCHEMY_DATABASE_URI = "mysql://username:[email protected]:port/dbname"
    

    4)让项目读取配置文件

    修改__init__.py:增多如下内容(赫色部分):

    # -*- coding: utf-8 -*-
    from flask import Flask
    from flask_sqlalchemy import SQLAlchemy
    app = Flask(__name__)#import os#print os.environ.keys()#print os.environ.get('FLASKR_SETTINGS')#加载配置文件内容app.config.from_object('blog2.setting')   #模块下的setting文件名,不用加py后缀 app.config.from_envvar('FLASKR_SETTINGS')  #环境变量,指向配置文件setting的路径#创建数据库对象 db = SQLAlchemy(app)
    

    注意:FLASKR_SETTINGS处境变量须要手工业单独设置,window下能够在命令行中输入:

    E:workdirblog2> set FLASKR_SETTINGS=E:workdirblog2blog2setting.py
    

    要么点击自身的Computer-->高档-->遭受变量,新建三个。

    5)创设数据库和表

    windows命令行形式下,cd到项目runserver.py那么些目录下,踏入python shell下:

    输入古金色部分:

    E:workdirblog2>python
    Python 2.7.10 (default, May 23 2015, 09:44:00) [MSC v.1500 64 bit (AMD64)] on wi
    n32
    Type "help", "copyright", "credits" or "license" for more information.
    >>> from blog2 import db
    >>> db.create_all()
    >>>
    >>>
    

    若无别的错误输出代表创造数据库和表成功了。那时大家到数据库中去查看:

    图片 6

    数据库已经存在了,再看看表意况:开采并未有相应的b_user和b_category表。这是怎么呢?是还是不是绝非找到model目录下的四个类呢。难题在于:__init__.py文件没有引进model包,导致__init__.py不可能找到实体类。记住:一切模块对象的始建都在__init__.py中完成

    在blog2目录下的__init__.py增加如下代码:

    #只有在app对象之后声明,用于导入model否则无法创建表
    from blog2.model import User,Category
    

    再度运维方面命令:db.create_all()方法。那时表已经创办成功了。

    图片 7

    3、增加分界面模板:如登入页面,呈现blog小说页面,增多blog页面

    在templates目录下增加多少个html文件:

    layout.html:

     <!doctype html>
     <title>Flaskr</title>
     <link rel=stylesheet type=text/css href="{{ url_for('static', filename='style.css') }}">
     <div class=page>
      <h1>Flaskr</h1>
      <div class=metanav>
      {% if not session.logged_in %}
       <a href="{{ url_for('login') }}">log in</a>
      {% else %}
       <a href="{{ url_for('logout') }}">log out</a>
      {% endif %}
      </div>
      {% for message in get_flashed_messages() %}
       <div class=flash>{{ message }}</div>
      {% endfor %}
      {% block body %}{% endblock %}
     </div>
    

    login.html:

    {% extends "layout.html" %}
    {% block body %}
     <h2>Login</h2>
     {% if error %}<p class=error><strong>Error:</strong> {{ error }}{% endif %}
     <form action="{{ url_for('login') }}" method=post>
      <dl>
       <dt>Username:
       <dd><input type=text name=username>
       <dt>Password:
       <dd><input type=password name=password>
       <dd><input type=submit value=Login>
      </dl>
     </form>
    {% endblock %}
    

    show_基本结构,目录结构。entries.html:

    {% extends "layout.html" %}
    {% block body %}
     {% if session.logged_in %}
      <form action="{{ url_for('add_entry') }}" method='POST' class=add-entry>
       <dl>
        <dt>Title:
        <dd><input type=text size=30 name=title>
        <dt>Text:
        <dd><textarea name=text rows=5 cols=40></textarea>
        <dd><input type=submit value=Share>
       </dl>
      </form>
     {% endif %}
     <ul class=entries>
     {% for entry in entries %}
      <li><h2>{{ entry.title }}</h2>{{ entry.content|safe }}
     {% else %}
      <li><em>Unbelievable. No entries here so far</em>
     {% endfor %}
     </ul>
    {% endblock %}
    

    对应static中添加css文件:style.css

    body      { font-family: sans-serif; background: #eee; }
    a, h1, h2    { color: #377BA8; }
    h1, h2     { font-family: 'Georgia', serif; margin: 0; }
    h1       { border-bottom: 2px solid #eee; }
    h2       { font-size: 1.2em; }
    
    .page      { margin: 2em auto; width: 35em; border: 5px solid #ccc;
             padding: 0.8em; background: white; }
    .entries    { list-style: none; margin: 0; padding: 0; }
    .entries li   { margin: 0.8em 1.2em; }
    .entries li h2 { margin-left: -1em; }
    .add-entry   { font-size: 0.9em; border-bottom: 1px solid #ccc; }
    .add-entry dl  { font-weight: bold; }
    .metanav    { text-align: right; font-size: 0.8em; padding: 0.3em;
             margin-bottom: 1em; background: #fafafa; }
    .flash     { background: #CEE5F5; padding: 0.5em;
             border: 1px solid #AACBE2; }
    .error     { background: #F0D6D6; padding: 0.5em; }
    

    4、加多业务逻辑

    在controller目录下新建blog_message.py文件:

    from blog2.model.User import User
    from blog2.model.Category import Category
    import os
    
    from blog2 import app,db
    from flask import request,render_template,flash,abort,url_for,redirect,session,Flask,g
    
    @app.route('/')
    def show_entries():
    categorys = Category.query.all()
    return render_template('show_entries.html',entries=categorys)
    
    @app.route('/add',methods=['POST'])
    def add_entry():
    if not session.get('logged_in'):
    abort(401)
    title = request.form['title']
    content = request.form['text']
    category = Category(title,content)
    db.session.add(category)
    db.session.commit()
    flash('New entry was successfully posted')
    return redirect(url_for('show_entries'))
    
    @app.route('/login',methods=['GET','POST'])
    def login():
    error = None
    if request.method == 'POST':
    username = request.form['username']
    password = request.form['password']
    user = User.query.filter_by(username=request.form['username']).first()
    passwd = User.query.filter_by(password=request.form['password']).first()
    
    if user is None:
    error = 'Invalid username'
    elif passwd is None:
    error = 'Invalid password'
    else:
    session['logged_in'] = True
    flash('You were logged in')
    return redirect(url_for('show_entries'))
    return render_template('login.html', error=error)
    
    @app.route('/logout')
    def logout():
    session.pop('logged_in', None)
    flash('You were logged out')
    return redirect(url_for('show_entries'))
    

    相对不要忘了在模块级目录下(blog2索引)的__init__.py文件引进视图模块,代码如下:

    #只有在app对象之后声明,用于导入view模块
    from blog2.controller import blog_manage
    

    5、运转品种,效果如下:

    1)输入

    图片 8

    2)点击log in

    图片 9

    忘了告知你了,你要事先在b_user表中增加贰个用户喔,因为登入要验证用户的,不然你是无力回天登入成功的。

    3) 增添条款

    图片 10 

    以上正是这些小项目标享有页面,很简短吗。你显明能消除!!!

    【计算】:通过此次练习,是不是对flask框架运维机制有所领悟吗,是或不是一度有了大局的认知了,如若ok,那么那几个小练习就有存在价值了。

    参照他事他说加以考察文献:

             【flask急速入门粤语版】

             【flask赶快入门日文版】

             【flask-sqlalchemy中文版】

             【flask-sqlalchemy英文版】

    之前写了一篇flask开辟情状搭建,今日后续,进行贰个实战小品种-blog系统。 blog系统...

    基本结构,目录结构。Flask ==>   目录结构

    一:目标

    1.要求:

      1. 熟习Flask的目录结构。

      2. 打探应用,装上新的零部件往里面放,改怎么弄?

     

    2.作业: 

      1.基于flask完毕权力管理

      2.笔记:

        -  flask的央浼周期

     

    二:目录结构内容

    知识点:

      1.  从全局上精晓flask项目标目录结构

      2. flask品类的运维机制

      3.flask框架达成MVC架构

      4.flask-sqlalchemy  操作mysql数据库

     

    流程手续:

      1.新建项目:blog系统

    图片 11

     

    达成后的目录结构是那般的:非常轻易,二个static文件夹,三个templates文件夹,八个py文件,如下:

    图片 12

     

      2.索引结构重构,引进包管理

    1.针对上边的组织,在最上层blog2索引下,做如下操作:

      1.新建一个runserver.py 文件, 作为“项目统一入口文件” 

      2. 新建blog2文件夹,把已经存在的 static,templates, blog2.py 移到blog2文书夹下,

      3. 然后分别创造 controller  , model 包(右击blog2, 选拔 python packge )。 把blog2.py  更名称为 __init__.py  ,

      4.新建setting.py 文件。

    现行反革命目录结构如下:

      图片 13

    诸有此类就也正是叁个大工程的构造了:

    分析:

      1. 最上层的 blog2 目录是项目名称,三个体系下得以回顾多个模块,约等于采取,每一种应用下有自身的配备文件,开头化文件,MVC架构。

      2. runserver.py : 与利用模块评级,作为项目运转为文件。  

      3.次之级blog2索引: 模块名称

        controller : MVC 中的 C, 首要寄存 视图函数。

        model   : MVC 中的 M , 首要寄放在 实体类文件,映射数据库表

        templates : MVC 中的V, 首要寄放在 html 文件

        static : 静态文件, 主要贮存 css, js 等文件

        __init__.py : 模块先导化文件, Flask 程序对象的创造必须在 __init__.py   文件里落成, 然后就能够安全的导入引用每个包。

         setting.py  : 配置文件,数据库用户名密码等等

     

    三, 开荒代码

    1. 先把品种周转起来:

       1. 编写__init__.py文件, 创制项目对象,代码如下:

    from flask import Flask
    
    #创建项目对象
    app = Flask(__name__)
    

     

      2. 在 runserver.py , 增添如下代码

    from blog2 import app
    
    @app.route('/')
    def hello_world():
        return 'Hello World!'
    
    
    if __name__ == '__main__':
        app.run(debug=True)
    

     

       3. 运行runserver.py 文件:

     图片 14

    然后在浏览器中输入:

    图片 15

     

     到此地甘休,项指标雏形就能够符合规律运转了,上边包车型地铁政工就回顾了,增多内容,让项目有血有肉。

     

    2.修改配置文件。

      1. 改变setting.py 文件,增加配置数据库连接音讯,如下:

     

      2.让项目读取配置文件

    修改_init__,py : 增加如下内容(暗黑部分):

    # -*- coding: utf-8 -*-
    from flask import Flask
    from flask_sqlalchemy import SQLAlchemy
    
    app = Flask(__name__)
    #import  os
    #print os.environ.keys()
    #print os.environ.get('FLASKR_SETTINGS')
    #加载配置文件内容
    app.config.from_object('blog2.setting')     #模块下的setting文件名,不用加py后缀 
    app.config.from_envvar('FLASKR_SETTINGS')   #环境变量,指向配置文件setting的路径
    
    #创建数据库对象 
    db = SQLAlchemy(app)
    

     

     

      3.规划数据库

    1.此番演练相比较轻便,就多个表,叁个user表,多少个文章表。咱们使用python的orm框架flask-sqlalchemy达成表的始建、增加和删除改查功效。

    在model文件夹中增加User.py和Category.py文件,内容如下:

     1.user.py

    from blog2 import db
    
    class User(db.Model):
        __tablename__ = 'b_user'
        id = db.Column(db.Integer,primary_key=True)
        username = db.Column(db.String(10),unique=True)
        password = db.Column(db.String(16))
    
        def __init__(self,username,password):
            self.username  = username
            self.password = password
        def __repr__(self):
            return '<User %r>' % self.username
    

     

    2.category.py

    from blog2 import db
    
    class Category(db.Model):
        __tablename__ = 'b_category'
        id = db.Column(db.Integer,primary_key=True)
        title = db.Column(db.String(20),unique=True)
        content = db.Column(db.String(100))
    
        def __init__(self,title,content):
            self.title = title
            self.content = content
        def __repr__(self):
            return '<Category %r>' % self.title
    复制代码
    

     

       3.创办数据库和表

     

     

     

     

      

     

    python有四个相比较闻名的互联网框架,三个是django,一个是flask. 以前的django小说里面介绍了django的各类用法,这几个连串初叶介绍flask的用法.比较与django,flask越发简明,透明,flask没有django协助的那么多框架,举例admin等.然而也等于因为从没那样多的框架,因而flask尤其切合本身DIY.上面就起来flask

    python有多个相比较著名的互连网框架,二个是django,贰个是flask. 以前的django作品里面介绍了django的各类用法,这么些种类发轫介绍flask的用法.相比与django,flask尤其简便易行,透明,flask未有django帮忙的那么多框架,比如admin等.不过也多亏因为尚未这么多的框架,由此flask尤其吻合本人DIY.下边就从头flask

    刚入门flask,建了二个文件命名称叫flask.py

     

     

    在virtualenv的容器里运转该py文件,报错cannot import name 'Flask' from 'flask'。

    1初始化:

    1初始化:

    那是因为它导入的模块不是本身用pip安装这几个,而是本身那一个自定义模块flask.py,首先去当前目录下找flask.py去了。

    享有flask程序都无法不创立一个顺序实例,web服务器使用WSGI的网关心下一代组织议,把吸收自客户端的具备央浼都传送给那些指标管理.程序实例的创办代码如下。

    抱有flask程序都必须创设贰个顺序实例,web服务器使用WSGI的网关心下一代组织议,把吸取自客户端的装有央浼都传送给那些目的管理.程序实例的创始代码如下。

    改个名字就ok了,myflask.py。

    第一引述Flask,然后申请程序实例,也正是Flask类的指标。而且Flask的构造函数有三个不可能不钦命的参数,也便是程序主模块或包的名字。在此处传出的是__name__

    率先引述Flask,然后申请程序实例,也正是Flask类的对象。并且Flask的构造函数有三个务必钦定的参数,也等于程序主模块或包的名字。在此地传出的是__name__

    万一何时还会有那几个破绽百出,十有八九有同超级模特块,找错了。

    from flask import Flask

    from flask import Flask

     

     

     

    app = Flask(__name__)

    app = Flask(__name__)

     

     

    那就是说这一个__name__到底是如何意思啊。大家平常在写python代码的时候,主文件的调用都会加多if __name__==”__main__”的说话。为何会有这么的写法呢?大家来看二个例证,新建2个py文件,test.py,test1.py,在八个文件中分别拉长代码print __name__,然后在test.py中引用test1 import test1. 那时候运作test.py。

    那便是说那几个__name__到底是什么样意思呢。我们日常在写python代码的时候,主文件的调用都会增多if __name__==”__main__”的讲话。为啥会有如此的写法呢?大家来看三个事例,新建2个py文件,test.py,test1.py,在八个文本中分别增加代码print __name__,然后在test.py中援引test1 import test1. 那时候运作test.py。

    获得的结果如下

    得到的结果如下

    test1

    test1

    __main__

    __main__

    这正是提及此处大家着力能知晓__name__的功能了,在被援引的模块中,__name__是模块文件名,在调用的文书中,__name__纵使运维的公文名。要是test.py中尚无援用test1.py直接运转test.py那么__name__就既是模块文件名也是运营的文件名。两个是一样的。

    那么到此处大家着力能知道__name__的成效了,在被引述的模块中,__name__是模块文件名,在调用的文件中,__name__尽管运转的公文名。固然test.py中平昔不援引test1.py直接运营test.py那么__name__就既是模块文件名也是运作的公文名。两个是一律的。

     

     

    介绍到这那么就精通__name__的功效了,它钦定了先后的主模块或包的名字

    介绍到那那么就掌握__name__的功用了,它钦命了程序的主模块或包的名字

     

     

    2 路由和视图函数

    2 路由和视图函数

    客户端把须求发送给web服务器,web服务器再把央求发送给Flask程序实例,那样程序实例就驾驭了对各类URL央求应该运转那么些代码。这也正是路由。在django中通过url(r'^index/',views.index)将URL地址和后端的views关联起来。那么来看下Flask是什么样钦赐路由的呢。Flask中是透过app.route修饰器来将装修的函数注册为路由。hello_world为处理程序。@app.route('/')的情致正是假使服务器的域名是www.example.com,那么只要在浏览器中拜访www.example.com,那么出触发服务器试行hello_world函数。

    客户端把诉求发送给web服务器,web服务器再把要求发送给Flask程序实例,那样程序实例就清楚了对各类URL诉求应该运维这些代码。那也正是路由。在django中通过url(r'^index/',views.index)将URL地址和后端的views关联起来。那么来看下Flask是怎么样钦赐路由的呢。Flask中是经过app.route修饰器来将装修的函数注册为路由。hello_world为处理程序。@app.route('/')的情趣就是只要服务器的域名是www.example.com,那么一旦在浏览器中做客www.example.com,那么出触发服务器试行hello_world函数。

    @app.route('/')

    @app.route('/')

    def hello_world():

    def hello_world():

    return 'Hello World!'

    return 'Hello World!'

     

     

    3 运营服务器

    3 运营服务器

    既然实例已经发轫化并且路由也钦命好了。那么未来就活该运行服务器来运作了。通过app.run()来其实运行

    既然实例已经初叶化并且路由也钦点好了。那么现在就活该运行服务器来运作了。通过app.run()来实在运转

    if __name__ == '__main__':

    if __name__ == '__main__':

        app.run()

        app.run()

    运作后出现如下的打字与印刷。可以看来域名以及端口。

    运作前面世如下的打字与印刷。可以观望域名以及端口。

    /usr/bin/python2.7 /home/zhf/py_prj/flask_prj/flask_prj.py

    /usr/bin/python2.7 /home/zhf/py_prj/flask_prj/flask_prj.py

     * Running on  (Press CTRL C to quit)

     * Running on  (Press CTRL C to quit)

    在浏览器中实施 World!.

    在浏览器中实行 World!.

    在这些实例中,host地址是127.0.0.1, 暗许端口是5000,那么些运营的是本土服务器。即使我们想安顿自个儿的IP和端口的话该如何落到实处啊,如下所示,通过点名host和端口的值就能够退换服务器地址和端口了。

    在这几个实例中,host地址是127.0.0.1, 暗许端口是5000,这几个运行的是本土服务器。假如大家想安插本身的IP和端口的话该怎么贯彻吗,如下所示,通过点名host和端口的值就可以改造服务器地址和端口了。

    if __name__ == '__main__':

    if __name__ == '__main__':

    app.run(host='192.168.0.12',port=8000)

    app.run(host='192.168.0.12',port=8000)

     

     

    4 呼吁函数以及响应

    4 诉求函数以及响应

    在浏览器中常常会传递参数,在django中通过在管理函数中流传request参数来赢得。Flask中也是各有所长。

    在浏览器中平常会传送参数,在django中通过在管理函数中传播request参数来获得。Flask中也是工力悉敌。

    from flask import request

    from flask import request

    @app.route('/')

    @app.route('/')

    def hello_world():

    def hello_world():

        user_agent=request.headers.get('User-Agent')

        user_agent=request.headers.get('User-Agent')

        return user_agent

        return user_agent

    地点的代码中经过return user_agent将数据再次回到到浏览器上。重回的时候还还足以回来HTML的样式。举例return ‘<h1>user_agent</h1>’. 也能够回去这种样式return ‘<h1>bad request</h1>’,400. 这里重返一个400状态码表示哀告无效。

    地点的代码中经过return user_agent将数据再次回到到浏览器上。重返的时候还还足以回到HTML的款型。比方return ‘<h1>user_agent</h1>’. 也足以重返这种样式return ‘<h1>bad request</h1>’,400. 这里重临一个400状态码表示请求无效。

     

     

     

     

    假定不想回来由1个,2个或三个结合的元组。 Flask视图函数能够回到response对象,make_response函数接收1个,2个或3个参数。并赶回二个response对象。通过那几个response对象,我们能够在上面调用种种措施,进一步设置响应,比方设置cookie

    如若不想回来由1个,2个或五个结合的元组。 Flask视图函数能够回到response对象,make_response函数接收1个,2个或3个参数。并赶回二个response对象。通过那几个response对象,大家能够在下边调用种种措施,进一步设置响应,举例设置cookie

    运行后浏览器中突显

    运作后浏览器中体现

    This document carries a cookie!

    在浏览器中能够看来设置的cookie值

    图片 16

     

    5 Flask扩展

    Flask的开荒web服务器帮衬广大起动设置选项。但只可以在剧本中作为参数字传送给app.run()。但这种艺术并不便利。传递设置选项的优异方式利用命令行参数。Flask-Script是二个Flask扩充。为Flask程序加多了多个命令行深入分析器。代码修改如下:

    from flask import Flask

    from flask import request

    from flask import make_response

    from flask_script import Manager

     

    app = Flask(__name__)

     

     

    if __name__ == '__main__':

        manager=Manager(app)

        manager.run()

    那样修改后,程序可以选择一组基本命令行选项,未来运作flask_prj.py,会来得二个用法音讯。

    图片 17

    runserver命令用来运维web服务器,运维python flask_prj.py runserver将开行服务器,而--help参数将显示怎么传递参数

    图片 18

    透过这种措施就能够在命令行中钦命地址和端口了

    zhf@zhf-maple:~/py_prj/flask_prj$ python flask_prj.py runserver --host 127.0.0 --port 8000

     * Running on  (Press CTRL C to quit)

     

    This document carries a cookie!

    在浏览器中得以看来设置的cookie值

    图片 19

     

    5 Flask扩展

    Flask的付出web服务器援救广大开发银行设置选项。但不得不在本子中作为参数传给app.run()。但这种措施并不便利。传递设置选项的赏心悦目方式利用命令行参数。Flask-Script是二个Flask扩张。为Flask程序增添了一个限令行剖析器。代码修改如下:

    from flask import Flask

    from flask import request

    from flask import make_response

    from flask_script import Manager

     

    app = Flask(__name__)

     

     

    if __name__ == '__main__':

        manager=Manager(app)

        manager.run()

    诸有此类修改后,程序能够采纳一组基本命令行选项,今后运维flask_prj.py,会来得二个用法新闻。

    图片 20

    runserver命令用来运转web服务器,运营python flask_prj.py runserver将起动服务器,而--help参数将展示怎么传递参数

    图片 21

    透过这种办法就足以在指令行中内定地点和端口了

    zhf@zhf-maple:~/py_prj/flask_prj$ python flask_prj.py runserver --host 127.0.0 --port 8000

     * Running on  (Press CTRL C to quit)

     

    本文由新葡亰496net发布于奥门新萄京娱乐场,转载请注明出处:基本结构,目录结构

    关键词:

上一篇:新葡亰496net机械学习,近邻算法

下一篇:没有了