基于网易云课堂上的教程
更新ing
不适合新手入门
虚拟环境
- 安装虚拟环境
pip install virtualenv
- 新建环境
virtualenv [name]
- 激活环境
在进入虚拟环境目录下Scripts
文件夹后
activate
- 退出环境
在进入虚拟环境目录下Scripts
文件夹后
deactivate
Debug模式
- 开启
app.run(debug=Ture)
- 关闭
app.run(debug=False)
配置文件
新建一个config.py
#encoding utf-8
DEBUG = Ture
然后在主程序里面导入
import config
最后应用
app.config.from_object(config)
url传入参数
@app.route('/article/<id>')
def article(id):
return u"%s" % id
url反转
from flask import url_for
#
url_for("article", id="123")
# return /article/123
重定义向
from flask import redirect
#
return redirect(url_for("login"))
return redirect("/login")
模板
在template
文件下新建一个index.html
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>Hello, {{ name }}</h1>
<p>e-mail:{{ email }}</p>
</body>
</html>
#encoding: utf-8
from flask import Flask, render_template
import config
app = Flask(__name__)
app.config.from_object(config)
@app.route('/')
def hello_world():
return 'Hello World!'
@app.route('/user/<name>/<email>')
def name(name,email):
context={
'name':name,
'email':email
}
return render_template('index.html', **context)
# = return render_template('index.html', name=name, email=email)
if __name__ == '__main__':
app.run()
jinjia2语法
模板继承
{% extends 'base.html' %}
{% block main %}
{{ super() }}
{% endblock %}
flash
使用了bootstrap
样式
{% with messages = get_flashed_messages() %}
{% if messages %}
{% for message in messages %}
<div class="alert alert-warning">
<button type="button" class="close" data-dismiss="alert"> ×</button>
{{ message }}
</div>
{% endfor %}
{% endif %}
{% endwith %}
加载静态文件
url_for('static', filename='css/base,css')
MySQL数据库
进入MySQL 5.7 Command Line Client - Unicode
输入密码后
- 创建
create database [databaseName] charset utf8;
- 切换数据库
use [databaseName]
- 查看
show tables
desc [tableName]
select * from [tableName]
- 配置
DIALECT = 'mysql'
DRIVER = 'mysqldb'
USERNAME = 'root'
PASSWORD = 'root'
HOST = '127.0.0.1'
PORT = '3306'
DATABASE = 'db_demo1'
SQLALCHEMY_DATABASE_URI = "{}+{}://{}:{}@{}:{}/{}?charset=utf8".format(DIALECT, DRIVER, USERNAME, PASSWORD, HOST, PORT, DATABASE)
SQLALCHEMY_TRACK_MODIFICATIONS = False
模型操作
- 创建模型
Example:
class User(db.Model):
__tablename__='user'
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
username = db.Column(db.String(100), nullable=False)
pw = db.Column(db.String(100), nullable=False)
email = db.Column(db.String(100), nullable=False, unique=True)
def __repr__(self):
return '<User %r>' % self.username
- 提交
db.session.commit()
- 添加
db.session.add()
- 删除
db.session.delete()
- 创建数据库
db.create_all()
- 删除所有数据
db.drop_all()