flask-日料網站搭建-web目錄搭建


引言:想使用python的flask框架搭建一個日料網站,主要包含web架構,靜態頁面,后台系統,交互。

本節知識:搭建web目錄,目前正在copy網站。

python環境:python2.7,flask,以及flask相關的庫(沒有列完,如果運行manage.py時提示未安裝的庫安裝就ok了。)

先來看看大致構成,如下圖:

然后按照如圖新建一個目錄,我一個個截圖方便大家看。

主目錄:

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, 'data-test.sqlite')

# 生產環境
class ProductionConfig(Config):
    SQLALCHEMY_DATABASE_URI = 'sqlite:///' + os.path.join(basedir, 'data.sqlite')

# 設置一個config 字典中,注冊了不同的配置環境
config = {
    'development': DevelopmentConfig,
    'testing': TestingConfig,
    'production': ProductionConfig,
    'default': DevelopmentConfig
    }

manage.py

# -*- coding: utf-8 -*-
from app import create_app, db
from flask_script import Manager
from flask_migrate import Migrate, MigrateCommand

app = create_app('default')
manager = Manager(app)
migrate = Migrate(app, db)

manager.add_command('db', MigrateCommand)

if __name__ == '__main__':
    manager.run()

--------------這是分割線--------------

其它目錄暫時都可以放在一邊

進入app目錄 cd  app

該目錄有點類似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 '<User %r>' % self.UserName

建了個測試表

------------------------這是分割線----------------------

進入main文件夾 cd main 

__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

 

 如圖,這個就不要解釋了,做網站如果對這些不了解就很尷尬了。

----------------------這是分割線-------------

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

如圖,全是html

 

 ---------------------------------這就是大致目錄-------------------------------

--------開始測試可不可以運行,這樣才能開始搞啊

---------cmd執行下    進入manage.py  目錄  運行  python manage.py runserver

看吧很多庫沒安裝好,很傷啊,pip下。

把所有庫都完畢后再運行

打開127.0.0.1:5000 

 

有點亂了,html問題,總之測試ok了。。。我也要開始搞了,先把靜態頁面搞定,下次繼續說相關的功能。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM