一、妹子图下载。
这里提供一份一千多套的COSPLAY下载地址:
https://drive.google.com/file/d/1A63IbCMNz3WymR5j23z40DvpGEU-KmZz/view?usp=sharing
二、创建artcle模型同user模型:
apps/artcle/models.py:
from datetime import datetime
from sqlalchemy import Boolean, Column, ForeignKey, Integer, String, Text, DateTime
from sqlalchemy.sql import func
from core.database import Base,generate_uuid
class Blog(Base):
__tablename__ = "blogs"
id = Column(Integer, primary_key=True, index=True)
uuid = Column(String(100), name="uuid", default=generate_uuid, unique=True)
title = Column(String(150), unique=True, index=True)
category = Column(String(30), index=True)
author = Column(String(30), index=True)
path = Column(String(255), nullable=True)
content = Column(Text())
created_at = Column(DateTime(timezone=True), server_default=func.now())
相同的创建schemas.py和crud.py跟user类似这里就不贴了,照着USER改下。
这里的数据字段解释下,
title标题,category分类,author作者默认admin, path存放图片的服务器的URL,content这里有二种模式,一种是正常的文章形式,另外一种是我们这里使用的JSON字段,把图片的文件名JSON化存放。通过PATH+文件名显示到妹子图上。
通过脚本把下载的图片导入数据库。
同样的,在main.py中跟USER一样创建表,加入:
+from apps.artcle import models as blog_models
+blog_models.Base.metadata.create_all(bind=engine)
根目录下:cosplay.py:
import os
import json
from database import SessionLocal
from apps.blog.models import Blog
db = SessionLocal()
base_dir = "T:\\workspace\\python-tools\\cosplay"
#下载好的文件
def innerDb(blog):
db = SessionLocal()
try:
db.add(blog)
db.commit()
db.refresh(blog)
except Exception as e:
print(e)
finally:
db.close()
def get_all_dict():
dir_list = os.listdir(base_dir)
# print(dir_list)
res = []
for i in dir_list:
path = os.path.join(base_dir, str(i))
for t in os.listdir( path ):
# res.append(os.path.join(path, str(t)))
blog = Blog(
title= t,
category= 'cosplay',
path= "http://yourimg.com/cosplay/"+"{i}/{t}".format(i=i, t=t),
content= json.dumps(os.listdir(path+"\\%s" %t)),
author= 'admin'
)
innerDb(blog)
# return res
if __name__ == '__main__':
get_all_dict()
这里注意,我们是图站分离的,准备一台图片服务器,这里的path就是图片服务器的地址。
这个脚本把图片转换成数据库导入到blog表中。
数据库表导入之后是这样的:
同样的照着USER的router写一遍,其实模式都一样。
每个app中,包含models、shemas,crud,router这几个文件,内容也大同小异。
实现增删改查,以及路由的功能。
照着前面的user改就可以了。
本文由 admin 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为: Jul 30, 2020 at 12:39 am