python+mysql+flask创建一个微博应用(持续更新)
微博应用的结构:
- 用户管理,包括登录管理,会话,用户角色,个人档案及用户头像。
- 数据库管理,包括数据库迁移处理。
- 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}}-microblog</title>
{%else%}
<title>Microblog</title>
{%endif%}
</head>
<body> <div>microblog: <a href="/index">Home</a></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)
运行你的程序看看!!

python+mysql+flask创建一个微博应用(持续更新)的更多相关文章
- java web(一) 使用sql标签库+tomcat+mysql手动创建一个jsp练习总结
2016-09-0111:06:53 使用sql标签库+tomcat+mysql手动创建一个jsp 1. 1.1安装tomcat ...
- 使用python的Flask实现一个RESTful API服务器端
使用python的Flask实现一个RESTful API服务器端 最近这些年,REST已经成为web services和APIs的标准架构,很多APP的架构基本上是使用RESTful的形式了. 本文 ...
- MySQL如何创建一个好索引?创建索引的5条建议【宇哥带你玩转MySQL 索引篇(三)】
MySQL如何创建一个好索引?创建索引的5条建议 过滤效率高的放前面 对于一个多列索引,它的存储顺序是先按第一列进行比较,然后是第二列,第三列...这样.查询时,如果第一列能够排除的越多,那么后面列需 ...
- Python语言上机题实现方法(持续更新...)
Python语言上机题实现方法(持续更新...) 1.[字符串循环左移]给定一个字符串S,要求把S的前k个字符移动到S的尾部,如把字符串"abcdef"前面的2个字符'a'.'b' ...
- [0]尝试用Unity3d制作一个王者荣耀(持续更新)->游戏规划
太得闲了于是想写个农药,虽然可能会失败但是还是要试一试. 因为是自学的不是Unity专业的可能表达语言会有些不标准!望见谅! 结构: 以组件式(比如说摇杆控制和玩家部分的编写是分离的,可以自由拼装)作 ...
- Python框架学习之用Flask创建一个简单项目
在前面一篇讲了如何创建一个虚拟环境,今天这一篇就来说说如何创建一个简单的Flask项目.关于Flask的具体介绍就不详细叙述了,我们只要知道它非常简洁.灵活和扩展性强就够了.它不像Django那样集成 ...
- 使用python的Flask实现一个RESTful API服务器端[翻译]
最近这些年,REST已经成为web services和APIs的标准架构,很多APP的架构基本上是使用RESTful的形式了. 本文将会使用python的Flask框架轻松实现一个RESTful的服务 ...
- 转:使用python的Flask实现一个RESTful API服务器端
提示:可以学习一下flask框架中对于密码进行校验的部分.封装了太多操作. 最近这些年,REST已经成为web services和APIs的标准架构,很多APP的架构基本上是使用RESTful的形式了 ...
- mysql 如何创建一个简单的存储过程
1 用mysql客户端登入2 选择数据库 mysql>use test3 查询当前数据库有哪些存储过程 mysql>show procedure status where Db='test ...
随机推荐
- TFS在项目中DevOps落地进程(下)
紧接上篇 TFS在项目中Devops落地进程(上) 再接着说TFS相关之前先插入一个番外篇,虽然跟TFS关系不大但跟DevOps关系很大,觉得有必要在此乱入一下. 番外篇--监控之Applicatio ...
- linux操作系统基础篇(三)
1.cat命令 cat除了可以用来查看文本文档还可以将两个文本文档纵向合并到另外一个文本文档中 比如 cat /etc/passwd /etc/group > 1.txt 2. 归纳了所有的压缩 ...
- 【源码解析】Sharding-Jdbc中的算法
Sharding-jdbc中的很多地方涉及到算法,比如主从配置这块.分库分表这块.本文主要从源码角度介绍下,目前主要包含哪些算法,以及这些算法的内容. 一.读写分离(主从配置) 这块的代码主要在cor ...
- linux服务器上Apache配置多域名
一, 打开httpd.conf 二 找到如下三个位置配置如下 DocumentRoot "/data" #以下这个配置是紧挨着的,有两个 <Directory "/ ...
- OPENGLES 绘制纹理带黑圈pre-multiplying
1. 问题 在进行 OpenGL 纹理混合的过程中,遇到一个诡异的现象,两个纹理混合的效果出人所料: 将一个ALPHA渐变的[胡须]加在另一张图片上,这个 [胡须]是由外向里逐渐增加透明度的,也就是最 ...
- 翻译连载 | 附录 A:Transducing(下)-《JavaScript轻量级函数式编程》 |《你不知道的JS》姊妹篇
原文地址:Functional-Light-JS 原文作者:Kyle Simpson-<You-Dont-Know-JS>作者 关于译者:这是一个流淌着沪江血液的纯粹工程:认真,是 HTM ...
- Error parsing column 8 (IsRecommended=0 - SByte) Dapper查询mysql数据库可空的tinyint(1)一个错误
出错条件: 1.实体属性为bool?类型 2.对应字段为可空的tinyint(1)类型 3.该字段查询结果内即含有null,又含有正常值 google答案,两种建议: 1.修改sql语句,直接cast ...
- Office 365系列 (1)概览:完整的云中Office
Office365(以下简称O365)是一个集Office,企业邮箱,日历,日程管理,音视频会议 ,企业网盘 ,企业协作平台为一体的,旨在提高团队办公效率,减少基础设施投资和IT运维压力的解决方案.在 ...
- GC 基础(转)
转自:http://blog.csdn.net/ning109314/article/details/10411495/ = GC 基础 ===================== JAVA堆的描述如 ...
- Spring Cloud Eureka服务Demo级搭建
仅用于个人备忘,有错误之处还请文明指出,3Q 开发环境以及工具:Windows.JDK8.STS 1.新建SpringBoot工程作为Eureka Server ...