当前位置: 首页 > wzjs >正文

做租车行网站做公司网站需要多少钱

做租车行网站,做公司网站需要多少钱,做网站费用,wordpress 织梦 米拓前言 笔者曾经开发过一个可以对笑话浏览、收藏、分类、编辑上传的小工具(笔者开发后台,另外一个朋友负责小程序前台开发),如今所租用的服务器到期了,特此记录一下。 数据层 部署数据库 # 拉取Mysql镜像 docker pull…

前言

笔者曾经开发过一个可以对笑话浏览、收藏、分类、编辑上传的小工具(笔者开发后台,另外一个朋友负责小程序前台开发),如今所租用的服务器到期了,特此记录一下。

数据层

部署数据库

# 拉取Mysql镜像
docker pull mysql:8.0.33# 运行Mysql容器
docker run -d --name mysql-container -p 33333:3306 -e MYSQL_ROOT_PASSWORD="root_password" mysql:8.0.33# 访问Mysql
mysql -h 127.0.0.1 -P 33333 -u root -p

创建表结构

create table joke
(id          int auto_increment primary key,joke_title  varchar(32)                  null,joke_text   varchar(1200)                not null,joke_author varchar(30) default 'system' null,time_update datetime(6)                  null,open_flag   int         default 0        not null,   // 是否公开joke_type   varchar(20)                  null,       // 笑话类型path_image  varchar(255)                 null        // 配图路径
);create table joke_user_like
(id          int auto_increment primary key,user_id     varchar(100) not null,user_like   int          not null,  // "1"代表是用户喜欢的,"2"代表是不喜欢的time_update datetime(6)  not null,joke_id     int          not null
);

导入数据

1、从互联网上crawl 3000条笑话文本

2、将笑话导入进数据库

      

完成用户故事

随机返回一条笑话

用redis记录用户已经浏览过的笑话,用mysql记录用户“不喜欢”的。可选jokeId列表将剔除这两部分。

@api_view(['POST'])
def getOneJoke(request):return_data = {"state": 200, "message": "查询成功"}data = {}# 供随机抽取jokeId列表jokeIds = []try:data_json = loads(request.body)userId = data_json.get("userId", "")jokeType = data_json.get("jokeType", "")# 获得所有JokeIdglobal idList# 当浏览完全部笑话的时间,清空redis里的“已浏览”列表usedJokeList = redisJoke.lrange(userId, 0, -1)if len(idList) == len(usedJokeList):redisJoke.delete(userId)usedJokeList = np.array(usedJokeList).astype(dtype=int).tolist()#判断是否有携带笑话类型if jokeType == '':# 去除用户浏览过的笑话jokeIds = list(set(idList) - set(usedJokeList))else:jokeIds = jokeDao.getJokeIdsByType(jokeType)# 去除用户浏览过的笑话jokeIdsEx = list(set(jokeIds) - set(usedJokeList))if len(jokeIdsEx) > 0:jokeIds = jokeIdsEx# 去除用户不感兴趣的JokeIddisLikeList = jokeDao.getLikedJokeIds(userId, 2)jokeIds = list(set(jokeIds) - set(disLikeList))# 得到一个随机的JokeIdjokeId = random.sample(jokeIds, 1)oneJoke = jokeDao.getJokeById(jokeId[0])likeFlag = jokeDao.getLikeFlag(userId, jokeId[0])# 加入浏览记录redisJoke.rpush(userId, jokeId[0])data["jokeId"] = oneJoke.iddata["jokeTitle"] = oneJoke.joke_titledata["jokeText"] = oneJoke.joke_textdata["jokeImage"] = imageUtil.imageTobase64(oneJoke.path_image)data["likeFlag"] = likeFlagreturn_data["data"] = dataexcept Exception as e:print(e)print(sys._getframe().f_lineno, 'traceback.print_exc():', traceback.print_exc())return_data["state"] = 500return_data["message"] = "查询失败"return HttpResponse(dumps(return_data, ensure_ascii=False, default=lambda obj: obj.__dict__))

实现分类选择

@api_view(['POST'])
def getJokeType(request):return_data = {"state": 200, "message": "查询成功"}data = []try:data = jokeDao.getJokeTypes()return_data["data"] = dataexcept Exception as e:print(e)print(sys._getframe().f_lineno, 'traceback.print_exc():', traceback.print_exc())traceback.print_exc()return_data["state"] = 500return_data["message"] = "查询失败"#logger.info("查询机器人失败,异常信息为" + str(e))return HttpResponse(dumps(return_data, ensure_ascii=False, default=lambda obj: obj.__dict__))def getJokeTypes():jokeTypeList = []jokeTypes = Joke.objects.values("joke_type").distinct()for jokeType in jokeTypes:jokeTypeList.append(jokeType["joke_type"])return jokeTypeList

实现上传笑话

@api_view(['POST'])
def uploadOneJoke(request):return_data = {"state": 200, "message": "上传成功"}data = {}oneJoke = Joke()try:data_json = loads(request.body)jokeAuthor = data_json.get("userId", "")jokeTitle = data_json.get("jokeTitle", "")jokeText = data_json.get("jokeText", "")jokeImage = data_json.get("jokeImage", "")jokeImageType = data_json.get("jokeImageType", "jpg")if jokeImage != "":dirImage = os.path.join(IMAGE_PATH, jokeAuthor)pathImage = os.path.join(IMAGE_PATH, jokeAuthor, timeUtil.getCurrentTime() + "." + jokeImageType)dirImagePath = Path(dirImage)# 如果目录不存在,新建目录if dirImagePath.is_dir() == False:os.mkdir(dirImagePath)imageUtil.base64ToImage(pathImage, jokeImage)oneJoke.path_image = pathImage# 将笑话信息保存至数据库oneJoke.joke_author = jokeAuthoroneJoke.joke_title = jokeTitleoneJoke.joke_text = jokeTextret = jokeDao.addOneJoke(oneJoke)jokeId = ret.id# 上传的笑话自动加入已收藏jokeUserLike = JokeUserLike()jokeUserLike.user_id = jokeAuthorjokeUserLike.joke_id = jokeIdjokeUserLike.user_like = 1jokeUserLike.time_update = datetime.now().strftime('%Y-%m-%d %H:%M:%S')jokeDao.addLikedJoke(jokeUserLike)return_data["data"] = dataexcept Exception as e:print(e)return_data["state"] = 500return_data["message"] = "上传失败"# logger.info("查询机器人失败,异常信息为" + str(e))return HttpResponse(dumps(return_data, ensure_ascii=False, default=lambda obj: obj.__dict__))# 保存一个笑话
def addOneJoke(Joke):Joke.save()return Joke

实现查看收藏列表

@api_view(['POST'])
def getLikedJoke(request):return_data = {"state": 200, "message": "查询成功"}data = []try:data_json = loads(request.body)userId  = data_json.get("userId", "")likeFlag = data_json.get("likeFlag", "")page = data_json.get("page", 1)pageSize = data_json.get("pageSize", 10)# 得 已“喜欢”的jokeId列表jokeIdsUserLike = jokeDao.getLikedJokeIds(userId, int(likeFlag))#print(f"jokeIds: {jokeIdsUserLike}")try:paginator = Paginator(jokeIdsUserLike, pageSize)jokeIdsUserLike = paginator.page(page)except InvalidPage:jokeIdsUserLike = []# 得 已“喜欢”笑话内容for jokeId in jokeIdsUserLike:likedJokeDict = {}likedJoke = jokeDao.getJokeById(jokeId)likedJokeDict["jokeId"] = likedJoke.idlikedJokeDict["jokeTitle"] = likedJoke.joke_titlelikedJokeDict["jokeText"] = likedJoke.joke_textlikedJokeDict['jokeImage'] = imageUtil.imageTobase64(likedJoke.path_image)likeFlag = jokeDao.getLikeFlag(userId, jokeId)likedJokeDict["likeFlag"] = likeFlagdata.append(likedJokeDict)return_data["data"] = dataexcept Exception as e:traceback.print_exc()return_data["state"] = 500return_data["message"] = "查询失败"#logger.info("查询机器人失败,异常信息为" + str(e))return HttpResponse(dumps(return_data, ensure_ascii=False, default=lambda obj: obj.__dict__))


文章转载自:

http://YRP1j70l.Lsjgh.cn
http://zSbqnmYe.Lsjgh.cn
http://thIwRZIZ.Lsjgh.cn
http://qApjhDWw.Lsjgh.cn
http://dJGlRzNZ.Lsjgh.cn
http://HNySJtEq.Lsjgh.cn
http://euK8yLt0.Lsjgh.cn
http://YBhfhAIt.Lsjgh.cn
http://UwUzjXI6.Lsjgh.cn
http://KwHZ5Lue.Lsjgh.cn
http://SrLMMWiB.Lsjgh.cn
http://swuJkjwI.Lsjgh.cn
http://CblnWebx.Lsjgh.cn
http://DVr7Dwes.Lsjgh.cn
http://YWhDnuKO.Lsjgh.cn
http://z0FKBPlQ.Lsjgh.cn
http://kU6xn7tS.Lsjgh.cn
http://ETgSUVJJ.Lsjgh.cn
http://RG3tfLN2.Lsjgh.cn
http://NQP9jWeP.Lsjgh.cn
http://iWzuG572.Lsjgh.cn
http://2Khvl4q5.Lsjgh.cn
http://fq9QpozR.Lsjgh.cn
http://Rudqagrn.Lsjgh.cn
http://nCBolPmO.Lsjgh.cn
http://u8aZYVs9.Lsjgh.cn
http://opRI5O8C.Lsjgh.cn
http://JdrYzSzR.Lsjgh.cn
http://VZkVemtf.Lsjgh.cn
http://trmCpfNW.Lsjgh.cn
http://www.dtcms.com/wzjs/697606.html

相关文章:

  • 中山网站建设 760江苏双楼建设集团有限公司网站
  • 网站流量统计平台进行seo网站建设
  • 电子商城网站建设公司石家庄划定6个高风险区
  • 企业网站应该怎么做做企业推广去哪个网站比较好
  • 找加工厂上什么网站wordpress卸载
  • 建行国际互联网网站divider wordpress
  • 专业做室内设计的网站有哪些河南省人事考试网
  • 网站功能型和展示型的区别wordpress新添接口
  • 手机网站被做跳转4s店网站建设计划
  • 开源网站建设工具信用宁波企业网查询
  • seo织梦网站建设步骤wordpress增加目录
  • 外贸 推广网站中国网站为什么做的那么丑
  • seo发帖网站橙光音乐一家做音乐的网站
  • php二次网站开发步骤电影视频网站建设费用
  • 网站注册理由手机网站用什么系统
  • 权威的合肥网站推广重庆交通大学官网网站
  • 网站数据库连接出错网站配色表
  • 邯郸网站建设最新报价企业网站seo 优帮云
  • 自己怎么做卡密网站c语言在线编程网站
  • 博客网站品牌推广全案
  • 做网站镜像wordpress 总分类页
  • 旅游网站建设分析机电设备网站模板
  • 如何创建企业网站企业是做app还是做网站
  • 网站建设模板是什么意思东营 网站建设公司
  • 大埔县住房和城乡规划建设局网站上海seo及网络推广
  • 手机网站 asp重庆建网站的公司集中在哪里
  • 中国广东网站建设html5网页制作代码大全
  • 已有网站做移动网站网站开发的前端后端
  • 南充建网站的资料上海市建设注册管理网站
  • 怎么使用wordpress建站西安建站平台哪个好