Discuss / Python / schema 和 test 稍微改了改

schema 和 test 稍微改了改

Topic source

xian_wen

#1 Created at ... [Delete] [Delete and Lock User]

【schema.sql 修改】:

  1. 没有创建新的用户,直接用已有的用户就完事儿了,比如 root
  2. 不加繁琐的``
  3. sql 关键字一律大写

【test.py 修改】:

  1. 改成 async/await 风格
-- schema.sql

DROP DATABASE IF EXISTS awesome;

CREATE DATABASE awesome;

USE awesome;

-- 没有创建新的用户,无需授权

CREATE TABLE users
(
    id         varchar(50) NOT NULL,
    email      varchar(50) NOT NULL,
    password   varchar(50) NOT NULL,
    admin      bool        NOT NULL,
    name       varchar(50) NOT NULL,
    image      varchar(50) NOT NULL,
    created_at real        NOT NULL,
    UNIQUE KEY idx_email (email),
    KEY idx_created_at (created_at),
    PRIMARY KEY (id)
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8mb4;

CREATE TABLE blogs
(
    id         varchar(50)  NOT NULL,
    user_id    varchar(50)  NOT NULL,
    user_name  varchar(50)  NOT NULL,
    user_image varchar(500) NOT NULL,
    name       varchar(50)  NOT NULL,
    summary    varchar(200) NOT NULL,
    content    mediumtext   NOT NULL,
    created_at real         NOT NULL,
    KEY idx_created_at (created_at),
    PRIMARY KEY (id)
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8mb4;

CREATE TABLE comments
(
    id         varchar(50)  NOT NULL,
    blog_id    varchar(50)  NOT NULL,
    user_id    varchar(50)  NOT NULL,
    user_name  varchar(50)  NOT NULL,
    user_image varchar(500) NOT NULL,
    content    mediumtext   NOT NULL,
    created_at real         NOT NULL,
    KEY idx_created_at (created_at),
    PRIMARY KEY (id)
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8mb4;
# test.py

import asyncio
import orm
from models import User


async def test(loop):
    await orm.create_pool(user='root', password='password', db='awesome', loop=loop)
    u = User(name='Test', email='test@example.com', password='1234567890', image='abut:blank')
    await u.save()


loop = asyncio.get_event_loop()
loop.run_until_complete(test(loop))
mysql> SHOW TABLES;
+-------------------+
| Tables_in_awesome |
+-------------------+
| blogs             |
| comments          |
| users             |
+-------------------+
3 rows in set (0.01 sec)
mysql> SELECT * FROM users;
+----------------------------------------------------+------------------+------------+-------+------+------------+------------------+
| id                                                 | email            | password   | admin | name | image      | created_at       |
+----------------------------------------------------+------------------+------------+-------+------+------------+------------------+
| 0016224749940471654612e409b419592c4034b9e3d35aa000 | test@example.com | 1234567890 |     0 | Test | abut:blank | 1622474994.04746 |
+----------------------------------------------------+------------------+------------+-------+------+------------+------------------+
1 row in set (0.00 sec)

  • 1

Reply