Flask的初步使用一

flask是一个python application 框架
flask 相比 Django操作更简单
1 可以用pycharm直接创建一个flask工程
直接可以运行,这样自动就安装好了flask包.
也可以通过pip install Flask.
2 新项目中

from flask import Flask
from flask import request
from flask import render_template
from flask import make_response
from flask import session
from contextlib import closing
from flask import g
import sqlite3
app = Flask(__name__)
#如果要使用session,则需要为应用程序定义一个密钥
app.secret_key = 'JHKLSDGosdf98076djklHSDad?'



#连接数据库,并返回连接对象
def connect_db():
    #连接数据库,并返回数据库连接对象
    return sqlite3.connect("c:/xxxx/fpro1/users.db")


#初始化数据库,执行schema.sql文件,并提交
def init_db():
    #closing函数的作用在于使用完db对象之后,将其关闭
    with closing(connect_db()) as db:
        #读取schema.sql当中的sql语句,并将其执行
        with app.open_resource("schema.sql",mode='r') as f:
            #读取文件当中的所有行,将其一次性执行
            db.cursor().executescript(f.read())
        db.commit()

#per request,per connection
@app.before_request
def before_request():
    #g是一个全局对象,在所有的函数当中都可以访问
    g.db = connect_db()
    print("before")

@app.after_request
def after_response(response):
    print("after")
    g.db.close()
    return response



@app.route('/')
def hello_world():
    return 'Hello World!'


@app.route('/abc')
def abc():
    return "abc"


@app.route('/page/<index>')
def page(index):
    print(index)
    return "" + index


@app.route('/users/<year>/<month>/<day>')
def get_user_by_date(year,month,day):
    return year + ":" + month + ":" + day


@app.route('/test_request')
def test_request():
    print(request)
    print(request.method)
    print(request.args.get('name','nobody'))
    return "aaa"


@app.route('/user')
def user():
    u1 = {'name': 'zhangsan', 'age': 20}
    u2 = {'name': 'lisi', 'age': 22}
    return render_template('user.html', u1=u1, u2=u2)


@app.route('/store_cookie')
def store_cookie():
    #创建一个响应对象
    resp = make_response(render_template("test_cookie.html"))
    resp.set_cookie("abc", "123")
    resp.set_cookie("abcd", "1234")
    return resp


@app.route("/get_cookie")
def get_cookie():
    value1 = request.cookies.get("abc")
    value2 = request.cookies.get("abcd")
    return value1 + ":" + value2


@app.route("/test_session")
def test_session():
    print(type(session))
    session['username'] = 'zhangsan'
    print(session['username'])
    print(session.get('username'))
    return "test_session"

@app.route("/add_user/<id>/<name>/<age>")
def add_user(id, name, age):
    # sql = "insert into user values("+id+",'"+name+"',"+age+")"

    #sqlites使用?作为占位符
    sql = "insert into user VALUES (?,?,?)"
    #连接数据库,返回数据库连接对象
    # db = connect_db()
    #执行sql语句,将列表当中的数据替换到占位符上
    g.db.execute(sql, [id, name, age])
    g.db.commit()
    return "add_user"

@app.route("/get_all_user")
def get_all_user():
    #执行查询语句,将查询语句的结果放置在游标当中
    cursor = g.db.execute("select * from user")
    #cursor.fetchall()将会取出游标当中所有的数据,每一个数据都是一个元组
    for row in cursor.fetchall():
        print(row)
        print(row[0])
        print(row[1])
        print(row[2])

    return  "get_all_user"

if __name__ == '__main__':
    app.run()

执行之后
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
* 然后我们在浏览器中输入这个地址
*

3 数据库的创建方式.两种方式.代码中书写 和 项目创建. 1在本项目下创建一个文件,例如schema.sql.然后在python代码中的init_db方法初始化这个数据库,然后我们就看到一个数据库生成了.2第二种方式,我们先创建一个文件,例如mydb.右击项目
这里写图片描述
选择最末尾一项,data source. 然后根据提示创建指向本文件的数据库.成功之后,写入建表语句和插入数据.我们查看数据库,发现表和数据都已经插入了.如果没有看到数据库的同学,可以在pycharm的最左下角,看到一个pc的标志,点击在弹出的窗口中选择数据库选项.

猜你喜欢

转载自blog.csdn.net/xiaoxiaodechongzi/article/details/79462820