微博应用的结构:
- 用户管理,包括登录管理,会话,用户角色,个人档案及用户头像。
- 数据库管理,包括数据库迁移处理。
- Web表单支持,包括字段检验和用于防止垃圾邮件的验证码功能。
- 大数据的分页功能。
- 全文检索。
- 用户邮件通知
安装虚拟环境
自己上网搜索吧,这个就不多说了,其实我很烦安装虚拟环境的,在自己的电脑上搞都是直接insert。。。
安装的py模块:
flask\scripts\pip install flask flask\Scripts\pip install flask-login flask\Scripts\pip install flask-openid flask\Scripts\pip install flask-sqlalchemy flask\Scripts\pip install sqlalchemy-migrate flask\Scripts\pip install flask-whooshalchemy flask\Scripts\pip install flask-wtf flask\Scripts\pip install flask-babel flask\Scripts\pip install flup
开始我们的旅程吧
创建程序的结构(想到什么就加什么,一时还没想好怎么分区呢。。。)
microblog-app
__init__.py
views.py
-static
-templats
run.py
初始化app\__init__.py
from flask import Flask app = Flask(__name__) from app import views
编写试图函数
# app\views.py from app import app @app.route('/') @app.route('/index') def index(): pass
下面,使web应用能完全运行的最后一步就是创建一个能启动我们开发的这个应用web服务器的脚本。
#sicroblog\run.py from app import app if __name__ == "__main__": app.run(debug=True)
debug =True 开启调试模式
这时候你就可以运行程序,在浏览器中打开http:\\127.0.0.1:5000,虽然什么都没有出现,但是你已经成功第一步了
制作模板系统
为了保持业务逻辑和表现的分离,可以使用模板使你的网站结构将会组织的更好。
先来创建一个基础模板(templates\base.html)吧
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
{%if title%}
<title>{{title}}-microblogtitle>
{%else%}
<title>Microblogtitle>
{%endif%}
head>
<body>
<div>microblog: <a href="/index">Homea>div>
<hr>
{%block content %}{%endblock %}
body>
html>
之后的模板都可以通过继承的方式来引用你的base.html。
继承的关键是{%extends “base.html”%}
例如:index.html模板
{% extends "base.html" %} {% block content %} <h1>Hi, {{user.nickname}}!h1> {% for post in posts %} <div><p>{{post.author.nickname}} says: <b>{{post.body}}b>p>div> {% endfor %} {% endblock %}
下面到了修改我们的试图(app\views.py)的时候
from app import app from flask import render_template # app\views.py @app.route('/') @app.route('/index') def index(): user = {'nickname':'liwanning'} posts =[ { 'author':{'nickname':'憨豆豆'}, 'body':"今天是美丽的一天!" }, { 'author': {'nickname': '小会计'}, 'body': "要不要来场甜蜜的约会?" } ] return render_template('index.html',title = 'Home',user = user, posts = posts)
运行你的程序看看!!