我用 Flask 撸了一个日料网站
点击上方
“
Python开发
”,选择“置顶公众号”
关键时刻,第一时间送达!
引言:想使用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
,
" 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
from
flask_sqlalchemy
import
SQLAlchemy
from
config
import
config
bootstrap
=
Bootstrap
()
=
()
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
)
.
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
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了。。。我也要开始搞了,先把静态页面搞定,下次继续说相关的功能。
作者:不爱贞子爱爽子
原文:http://www.cnblogs.com/shuangzikun/p/taotaopythonflask_webConfig.html
Python开发整理发布,转载请联系作者获得授权
【挑战年薪百万程序员大咖】
- 男子和足浴店女友同居不到一个月,瘦了一圈,同事:还是少去点
- 5个身体异常都有一个“共性”:你即将得尿毒症!
- 一个社会调查者的自白
- 中国股市血一般的教训:牢记这一个指标,看懂的没一个是穷人
- 一个买房的小故事
- 怀孕女子洗澡昏倒, 丈夫把她送往医院, 一个小时后, 丈夫脸都绿了
- 认识一个人,需要机遇;了解一个人,需要时间
- 每一个姑娘都该看一看《创造101》
- 间歇期还有一个多月 中超各队已经操练起来 补强拉练个个来势汹汹
- 面对股权激励所得,「做一个纳税明白人」