flask-日料网站搭建-web目录搭建
2018-06-18 00:35:06来源:未知 阅读 ()
引言:想使用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了。。。我也要开始搞了,先把静态页面搞定,下次继续说相关的功能。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Python多进程方式抓取基金网站内容的方法分析 2019-07-24
- 爬取小说网站章节和小说语音播放 2019-07-24
- python网站主动推送 2019-07-24
- 《剑指offer》面试题的Python实现 2019-06-14
- 如何为Python日志输出着色? 2019-06-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash