我用 Flask 撸了一个日料网站

点击上方

Python开发

”,选择“置顶公众号”

关键时刻,第一时间送达!

我用 Flask 撸了一个日料网站

我用 Flask 撸了一个日料网站

我用 Flask 撸了一个日料网站


引言:想使用python的flask框架搭建一个日料网站,主要包含web架构,静态页面,后台系统,交互。



本节知识:搭建web目录,目前正在copy网站。

python环境:python2.7,flask,以及flask相关的库(没有列完,如果运行manage.py时提示未安装的库安装就ok了。)

先来看看大致构成,如下图:

我用 Flask 撸了一个日料网站

然后按照如图新建一个目录,我一个个截图方便大家看。

主目录:

我用 Flask 撸了一个日料网站

app:编写主要程序的目录

migrations:数据库相关目录

tests:测试目录

venu:扩展库或其他库环境

config.py:配置文件(重要)

manage.py:网站运行文件

requirements.txt:依赖库清单(这个好像自动生成)

贴上该目录两个脚本的代码:

config.py

  • # -*- coding: utf-8 -*-

  • import

    os

  • basedir

    =

    os

    .

    path

    .

    abspath

    (

    os

    .

    path

    .

    dirname

    (

    __file__

    ))

  • # 基类

  • class

    Config

    :

  •    SECRET_KEY

    =

    "hard to guess string"

  •    SQLALCHEMY_COMMIT_ON_TEARDOWN

    =

    True

  •    FLASKY_MAIL_SUBJECT_PREFIX

    =

    "[Flask]"

  •    FLASKY_MAIL_SENDER

    =

    "Flask Admin"

  •    FLASKY_ADMIN

    =

    "dimples"

  •    

    @staticmethod

  •    

    def

    init_app

    (

    app

    ):

  •        

    pass

  • # 开发环境

  • class

    DevelopmentConfig

    (

    Config

    ):

  •    DEBUG

    =

    True

  •    SQLALCHEMY_DATABASE_URI

    =

    "mysql://root@localhost:3306/f_luntan?charset=utf8"

  • # 测试环境

  • class

    TestingConfig

    (

    Config

    ):

  •    TESTING

    =

    True

  •    SQLALCHEMY_DATABASE_URI

    =

    "sqlite:///"

    +

    os

    .

    path

    .

    join

    (

    basedir

    ,

    " src="http://img5.shadafang.com/img.php?http://mmbiz.qpic.cn/mmbiz_png/HZW0wwFxbQCgAib0xI3LibI2J42XDRqNfDGicnCfNQ2jE2EudVVZofOQpeQtDRp5Vp93fufhJcGsNoYW6yrfiaokKg/640?wx_fmt=png" />

    该目录有点类似mvc模式

    main:视图文件,错误导向,表单文件等

    models:模型文件跟数据库挂钩(下面的models.py也是模型文件。可以放在外面,也可以放在这个文件夹里面看着标准些,位置不同只是导入的路径不一样)

    static:静态文件js,img,css

    templates:模板文件

    然后接下来打开剩余的2个py文件

    init.py

  • # -*- coding: utf-8 -*-

  • from

    flask

    import

    Flask

  • from

    flask_bootstrap

    import

    Bootstrap

  • from

    flask_mail

    import

    Mail

  • from

    flask_sqlalchemy

    import

    SQLAlchemy

  • from

    config

    import

    config

  • bootstrap

    =

    Bootstrap

    ()

  • mail

    =

    Mail

    ()

  • db

    =

    SQLAlchemy

    ()

  • # 工厂函数

  • def

    create_app

    (

    config_name

    ):

  •    app

    =

    Flask

    (

    __name__

    )

  •    app

    .

    config

    .

    from_object

    (

    config

    [

    config_name

    ])

  •    config

    [

    config_name

    ].

    init_app

    (

    app

    )

  •    bootstrap

    .

    init_app

    (

    app

    )

  •    mail

    .

    init_app

    (

    app

    )

  •    db

    .

    init_app

    (

    app

    )

  •    

    #注册蓝本

  •    

    from

    .

    main

    import

    main

    as

    main_blueprint

  •    app

    .

    register_blueprint

    (

    main_blueprint

    )

  •    

    return

    app

  • 很多需要安装的库安上去

    models.py 模型文件,我没放在models文件夹里面,也可以放在里面,改变下导入的路径即可

  • from

    app

    import

    db

  • class

    User

    (

    db

    .

    Model

    ):

  •    __tablename__

    =

    "users"

  •    id

    =

    db

    .

    Column

    (

    db

    .

    Integer

    ,

    primary_key

    =

    True

    )

  •    

    UserCode

    =

    db

    .

    Column

    (

    db

    .

    String

    (

    64

    ),

    unique

    =

    True

    ,

    index

    =

    True

    )

  •    

    Password

    =

    db

    .

    Column

    (

    db

    .

    String

    (

    128

    ))

  •    

    def

    __init__

    (

    self

    ,

    UserCode

    =

    None

    ,

    Password

    =

    None

    ):

  •        

    self

    .

    UserCode

    =

    UserCode

  •        

    self

    .

    Password

    =

    Password

  •    

    def

    __repr__

    (

    self

    ):

  •        

    return

    ""

    %

    self

    .

    UserName

  • 建了个测试表

    ------------------------这是分割线----------------------

    进入main文件夹 cd main

    我用 Flask 撸了一个日料网站

    init.py

  • # -*- coding: utf-8 -*-

  • from

    flask

    import

    Blueprint

  • main

    =

    Blueprint

    (

    "main"

    ,

    __name__

    )

  • from

    .

    import

    views

    ,

    errors

  • errors.py

  • # -*- coding: utf-8 -*-

  • from

    flask

    import

    render_template

  • from

    .

    import

    main

  • @main

    .

    app_errorhandler

    (

    404

    )

  • def

    page_not_found

    (

    e

    ):

  •    

    return

    render_template

    (

    "404.html"

    ),

    404

  • @main

    .

    app_errorhandler

    (

    500

    )

  • def

    internal_server_error

    (

    e

    ):

  •    

    return

    render_template

    (

    "500.html"

    ),

    500

  • 设置错误配置,引入的文件是templates文件夹的404.html

    form.py null 还没有添加内容

    views.py 视图文件

  • # -*- coding: utf-8 -*-

  • from

    flask

    import

    render_template

    ,

    session

    ,

    redirect

    ,

    url_for

    ,

    current_app

  • from

    ..

    import

    db

  • from

    ..

    models

    import

    User

  • from

    .

    import

    main

  • @main

    .

    route

    (

    "/"

    ,

    methods

    =[

    "GET"

    ,

    "POST"

    ])

  • def

    index

    ():

  •    

    return

    render_template

    (

    "index.html"

    )

  • 新建了一个index路由,模板为视图文件的index.html,如果刚刚的models.py放在models文件夹里面,from ..models import User 就需要修改,你懂得。

    ----------------------这是分割线-------------

    退出main文件 cd .. 进入static文件 cd static

    我用 Flask 撸了一个日料网站

  • 如图,这个就不要解释了,做网站如果对这些不了解就很尴尬了。

  • ----------------------这是分割线-------------

    退出static文件 cd .. 进入templates文件 cd templates

    如图,全是html

    我用 Flask 撸了一个日料网站

    ---------------------------------这就是大致目录-------------------------------

    --------开始测试可不可以运行,这样才能开始搞啊

    ---------cmd执行下 进入manage.py 目录 运行 python manage.py runserver

    我用 Flask 撸了一个日料网站

    我用 Flask 撸了一个日料网站

    看吧很多库没安装好,很伤啊,pip下。

    把所有库都完毕后再运行

    我用 Flask 撸了一个日料网站

    打开127.0.0.1:5000

    我用 Flask 撸了一个日料网站

    有点乱了,html问题,总之测试ok了。。。我也要开始搞了,先把静态页面搞定,下次继续说相关的功能。

    我用 Flask 撸了一个日料网站

  • 作者:不爱贞子爱爽子

  • 原文:http://www.cnblogs.com/shuangzikun/p/taotaopythonflask_webConfig.html

  • Python开发整理发布,转载请联系作者获得授权

  • 我用 Flask 撸了一个日料网站

    我用 Flask 撸了一个日料网站

    【挑战年薪百万程序员大咖】