仿小红书项目 第一章 环境搭建

微信小程序实现瀑布流 仿小红书 要做的小红书瀑布流效果 homepage.wxml代码 <!-- 瀑布流大概的思路就是,直接定义两列等宽的view,然后两列都加载相同的数据 wx:if="{{index%2==1}}" 这里,用if来辨别是奇数还是偶数,两边加载相反的 --> <view class="content"> <view class="left"> <block wx:for="{{noramalData.tuijain}}" wx:key="ind 阅读详情

前言

只是自己琢磨着写个类似小红书的项目,边记载边学习。大致的想法应该是API H5自适应网页 APP 小程序一个个实现吧。 大家可以跟着一切写。中间图图改改勿怪!另外这章我就写了个环境搭建,不过我全丢这章来写了,后期如果顺利的话就会重新写成教程。嗯,没别的了。开始!

项目概述

一个类似小红书的社交平台,用户可以注册登录、发布内容、互动社交、搜索发现,支持多端访问。

技术栈

  • 后端:Laravel(提供 API 接口)
  • 前端:Vue.js(支持 H5、App、小程序)
  • 数据库:MySQL
  • PHP 版本:8.0.2

目前在写和写完的模块

用户模块

  • 注册
  • 登录
  • 个人资料管理
  • 关注/粉丝系统

环境准备

工具下载

php

php下载地址 另外环境变量自己加一下。加完之后运行cmd然后再命令行输入php -v。

composer

composer下载。下载完成之后也是cmd,输入composer --version

node.js

也是node -v

主要这几个,数据库应该都有,框架的话按我下面步骤来下载吧。另外给个加速器 加速器地址。镜像问题和composer下载慢的问题我就直接跳过了。emm,吐槽一下,上次打吃鸡,某些加速器居然不如这个加速器。我服了, 捏麻麻的,谁才是加速器有点AC中间数可以吗。

项目创建

运行创建命令,项目名是最后一个,你可以改成自己喜欢的。我图方便,就xiaohongshu了

composer create-project --prefer-dist laravel/laravel xiaohongshu

或者你可以执行下面的命令

创建laravel独立安装器
composer global require laravel/installer

创建项目
laravel new xiaohongshu

指定版本创建项目
laravel new xiaohongshu --5.8

下载完了执行命令

cd xiaohongshu

php artissan serve

浏览器输入http://127.0.0.1:8000/。能看到laravel的欢迎页面就算OK。如果这都搞不定,蛙跳十分钟吧

修改配置

进入.env文件,修改成自己的mysql配置

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=xiaohongshu
DB_USERNAME=root
DB_PASSWORD=root

哦,补充一个问题,APP_KEY为空。上回我写简单案例那章我搜了答案直接运行就过了,忘记写文章里了。具体问题是你头次使用laravel的时候,.env文件的APP_KEY 是不会主动生成的,你要运行以下命令给他生成。

php artisan key:generate
创建mysql
CREATE DATABASE xiaohongshu;

表的话,迁移文件给的四张表我就先用这个了,执行命令

php artisan migrate

另外遇到个坑说一下。我用的mysql版本太低,导致运行命令的时候,MySQL不像对我说话,还丢了个报错。

SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes。

这个问题是laravel默认utf8mb4,在 utf8mb4 下,255 个字符需要 255 * 4 = 1020 字节。我的嘛,1000。怎么改呢。config/databse.php

'mysql' => [
            'driver' => 'mysql',
            'url' => env('DATABASE_URL'),
            'host' => env('DB_HOST', '127.0.0.1'),
            'port' => env('DB_PORT', '3306'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'unix_socket' => env('DB_SOCKET', ''),
            'charset' => 'utf8',   // 这里这里两行!!!
            'collation' => 'utf8_unicode_ci', // 这里这里两行!!!!
            'prefix' => '',
            'prefix_indexes' => true,
            'strict' => true,
            'engine' => null,
            'options' => extension_loaded('pdo_mysql') ? array_filter([
                PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
            ]) : [],
        ],

功能模块

注册

运行命令创建控制器

php artisan make:controller AuthController

编辑
Auth::attempt 检查邮箱和密码是否匹配。
createToken 生成访问令牌,前端用它访问受保护的 API。

namespace App\Http\Controllers;

use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;

class AuthController extends Controller
{
    public function register(Request $request)
    {
        // 验证请求数据
        $validated = $request->validate([
            'name' => 'required|string|max:255',
            'email' => 'required|string|email|max:255|unique:users',
            'password' => 'required|string|min:8',
        ]);

        // 创建用户
        $user = User::create([
            'name' => $validated['name'],
            'email' => $validated['email'],
            'password' => Hash::make($validated['password']),
        ]);

        // 返回成功响应
        return response()->json(['message' => '用户注册成功', 'user' => $user], 201);
    }
}
配置路由

编辑routess/api.php
注意要放再api文件,这样生成的url默认是会自带/api的

Route::post('/register', [AuthController::class, 'register']);
测试

你用postman或者apipost之类的都行。
我用的postman,说下测试流程

测试路径
http://localhost:8000/api/register

再body下面选中raw然后选json
{
    "name": "John Doe",
    "email": "john.doe@example.com",
    "password": "secret"
}

最后他返回,这样就算测试成功。后面我就不写这么细了哈
{
    "message": "注册成功",
    "user": {
        "name": "John Doe",
        "email": "john.doe@example.com",
        "updated_at": "2025-06-07T06:00:03.000000Z",
        "created_at": "2025-06-07T06:00:03.000000Z",
        "id": 2
    }
}

登录

Sanctum API 令牌

如果按照之前我的操作的话你的数据库里应该有personal_access_tokens这个表。有的话跳过这步骤,没得跟我敲一下。有些童鞋可能有安装没执行迁移,自己去composer.json里找找,自己把握一哈把。

composer 安装
composer require laravel/sanctum

发布配置文件
php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"

运行迁移生成数据表
php artisan migrate

最后不管有没有表,到app/Http/Kernel.php里看一眼,确保api中间件组里有Sanctum

    protected $middlewareGroups = [
        'web' => [
            \App\Http\Middleware\EncryptCookies::class,
            \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
            \Illuminate\Session\Middleware\StartSession::class,
            \Illuminate\View\Middleware\ShareErrorsFromSession::class,
            \App\Http\Middleware\VerifyCsrfToken::class,
            \Illuminate\Routing\Middleware\SubstituteBindings::class,
        ],

        'api' => [
        // 这里我的文件本来有注释,打开
             \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
            'throttle:api',
            \Illuminate\Routing\Middleware\SubstituteBindings::class,
        ],
    ];
登录方法

编辑app/Http/Controller/AuthController.php

<?php
namespace App\Http\Controllers;

use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Auth;

class AuthController extends Controller
{
    // 注册
    public function register(Request $request)
    {
        $request->validate([
            'name' => 'required|string|max:255',
            'email' => 'required|string|email|max:255|unique:users',
            'password' => 'required|string|min:6',
        ]);

        $user = User::create([
            'name' => $request->name,
            'email' => $request->email,
            'password' => Hash::make($request->password),
        ]);

        return response()->json(['message' => '注册成功', 'user' => $user], 201);
    }

    // 登录
    public function login(Request $request)
    {
        $request->validate([
            'email' => 'required|string|email',
            'password' => 'required|string',
        ]);

        if (!Auth::attempt($request->only('email', 'password'))) {
            return response()->json(['message' => '邮箱或密码错误'], 401);
        }

        $user = Auth::user();
        $token = $user->createToken('auth_token')->plainTextToken;

        return response()->json([
            'message' => '登录成功',
            'user' => $user,
            'token' => $token,
        ], 200);
    }
}
路由

编辑Route/api.php

Route::post('/login', [AuthController::class, 'login']);
测试

返回下列信息就算成功了

{
    "message": "登录成功",
    "user": {
        "id": 1,
        "name": "testuser",
        "email": "test@example.com",
        "email_verified_at": null,
        "created_at": "2025-06-07T05:52:11.000000Z",
        "updated_at": "2025-06-07T05:52:11.000000Z"
    },
    "token": "1|37poUxNUgdgy6fIiFJI7oUGPT05wVf1VqNSy8Cpd199028b5"
}

获取信息方法

编辑app/Http/Controllers/AuthController.php

    // 用户信息
    public function user(Request $request){
        return response()->json([
            'message' => '用户信息',
            'user' => $request->user(),
        ], 200);
    }

编辑routes/api.php

Route::middleware('auth:sanctum')->get('/user', [AuthController::class, 'user']);

测试
postman输入http://localhost:8000/api/user,Authorization选项选中Bearer Token输入刚才登录给的token

{
    "message": "用户信息",
    "user": {
        "id": 1,
        "name": "testuser",
        "email": "test@example.com",
        "email_verified_at": null,
        "created_at": "2025-06-07T05:52:11.000000Z",
        "updated_at": "2025-06-07T05:52:11.000000Z"
    }
}
php仿小红书,vue仿小红书个人开源项目 小红书,发现全世界的好东西! 种草种的好,美得比人早! 在线预览点我有惊喜哦(PC端建议在Chrome下开启调试模式,移动端直接在浏览器中打开就好)项目描述技术栈Vue2.0全家桶 + axios + Vuex + Mint-Ui + Mock.js + Stylus主要依赖使用vue-cli2.0搭建项目框架使用vue-router2.7进行页面路由切换使用json server进行htt... 阅读详情

相关推荐

原创Flutter 3.19 仿小红书,学不会我去刷厕所

原创Flutter 3.19 仿小红书,学不会我去刷厕所,最近有空的时候用flutter3做了一个小红书的项目,方便大家学习,提供源码,有操作思路。原创开发基于flutter3.19.5+dart3.3.3+getx等技术开发仿小红书app实战项目。

flutter开发app的博客 1504

一个仿小红书,堆糖的springboot+vue项目,使用机器学习模型做推荐功能

一个防小红书app项目

qq_41626427的博客 4000

扣子Coze实战:一天仿写1000条小红书热门笔记(工作流分享)

如果你还在用人工方式一条条憋选题、想文案、剪视频,真的建议你停一停。AI不是取代创作者,而是释放创作者。它帮你搞定枯燥重复的活,让你专注在“结构设计”和“价值交付”上。

互联网架构师笔记 3149

模仿一个小红书项目

从0到1用go语言开发一个小红书的项目介绍

qq_34481955的博客 826

仿小红书社交APP.zip

如果您下载了本程序,但是该程序存在问题无法运行,那么您可以选择退款或者寻求我们的帮助(如果找我们帮助的话,是需要追加额外费用的)。另外,您不会使用资源的话(这种情况不支持退款),也可以找我们帮助(需要追加额外费用) springboot微服务机构,支持安卓、苹果、小程序、H5端多端适配。前端uniapp跨平台编译。 具备:图文、视频发布、文章、话题、圈子、问答、附近、点赞、评论、关注、IM即时通讯、积分模块、头像挂件、VIP会员、消息推送通知、商城等模块 微信小程序是腾讯公司基于微信平台推出的一种轻量级应用形态,它无需用户下载安装即可在微信内直接使用。自2017年正式上线以来,小程序凭借其便捷性、易获取性和出色的用户体验迅速获得市场认可,并成为连接线上线下服务的重要桥梁。 小程序的核心特点包括: 零安装:用户只需通过微信扫一扫或搜索功能,即可打开和使用小程序,大大降低了用户的使用门槛和手机存储空间压力。 速度快:加载速度相较于传统的HTML5网页更快,依托于微信强大的基础设施,能够实现近乎原生应用的流畅体验。 跨平台兼容:开发者一次开发,即可在多种终端设备上运行,免除了复杂的适配工作,大大提高了开发效率。 社交属性强:小程序可以无缝嵌入微信生态,支持分享至聊天窗口、朋友圈等社交场景,有利于用户间的传播和裂变增长。 丰富接口能力:提供丰富的API接口,可调用微信支付、位置服务、用户身份识别等多种功能,方便企业进行商业服务的集成与拓展。 目前,微信小程序已经覆盖了电商购物、生活服务、娱乐休闲、教育学习、工具助手等多个领域,为数以亿计的用户提供便捷的服务入口,也为众多商家和开发者提供了新的商业模式和创业机会。随着技术的不断升级和完善,小程序已成为现代移动互联网生态中不可或缺的一部分。

vue仿小红书项目前后端源码.zip

vue仿小红书项目前后端源码.zip

ssm仿小红书app(开题+源码)

在小红书平台上,用户可以浏览各类商品信息,包括美妆、时尚、家居等,同时还可以通过用户发布的分享内容,获取到其他用户的购物经验和推荐。此外,仿小红书app的设计与实现可以为社交电商领域的技术创新提供有益的参考,推动社交电商技术的发展。[6]赵子昂, 黄钧露. JAVA编程在计算机应用软件中的应用特征与技术研究[J]. 电子测试, 2021, (18): 83-84.本研究旨在设计和实现一个仿小红书的社交电商平台,旨在解决现有平台面临的问题,提高用户体验和商业变现能力。

sryue06的博客 1818

Vue仿小红书项目(前后端源码)_社交平台设计_UI组件+功能文档.zip

【资源详情说明】 【1】该项目为近期精心打造开发,完整代码。同时,配套资料一应俱全,涵盖详细的设计文档 【2】项目上传前源码经过严格测试,在多种环境下均能稳定运行,功能完善且稳定运行,技术研究、教学演示还是项目实践,都能轻松复现,节省时间和精力。 【3】本项目面向计算机相关专业领域的各类人群,对于高校学生,可作为毕业设计、课程设计、日常作业的优质参考;对于科研工作者和行业从业者,可作为项目初期立项演示,助力快速搭建原型,验证思路。 【4】若具备一定技术基础,可在此代码上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 【5】小白,在配置环境或运行项目时遇到困难,可提供远程指导和全方位技术支持。 欢迎下载学习本项目资源,期待与你共同探讨技术问题,交流项目经验!

【免费下载】 Android Studio 仿小红书App项目

Android Studio 仿小红书App项目 【下载地址】AndroidStudio仿小红书App项目 本项目是一个基于Android Studio开发的仿小红书App的简单项目。通过这个项目,你可以学习到如何使用Android Studio进行Android应用开发,并且了解如何实现类似小红书的基本功能 ...

gitblog_09750的博客 978

基于Vue2和elementUI实现的博客模式的购物一体系统源代码(仿小红书)

博客进行书籍或者美食的推荐,主要目的是引导链接购物,涉及返利,收益。 视频上传编辑,电商嵌入地址链接 基本功能: 前台:1,博客主体视频推荐,2 引导购物 后台:3,商城(商品的管理) 4,返利管理(报表) 5 收益管理及展示(报表图等) 。

仿小红书社交APP,springboot微服务机构,支持安卓、苹果、小程序、H5端多端适配。前端uniapp跨平台编译。

仿小红书社交APP,springboot微服务机构,支持安卓、苹果、小程序、H5端多端适配。前端uniapp跨平台编译。 具备:图文、视频发布、文章、话题、圈子、问答、附近、点赞、评论、关注、IM即时通讯、积分模块、头像挂件、VIP会员、消息推送通知、商城等模块.zip

探索Android开发新境界:仿小红书App项目推荐

探索Android开发新境界:仿小红书App项目推荐 【下载地址】AndroidStudio仿小红书App项目 本项目是一个基于Android Studio开发的仿小红书App的简单项目。通过这个项目,你可以学习到如何使用Android Studio进行Android应用开发,并且了解如何实现类似小红书的基本功能 ...

gitblog_09792的博客 428

Tesseract OCR 字库训练教程:提高识别率进阶版

通过 Tesseract 字库训练,你可以提高 OCR 对特定文本或字体的识别能力。训练过程包括准备训练数据、生成标签文件、运行训练工具,以及将训练结果集成到实际项目中。虽然训练过程需要一些时间和精力,但对于需要高精度文本识别的场景来说,字库训练是非常有效的提升识别率的方法。

小蜗牛的珍贵百宝箱 1868

【亲测免费】 探索Android开发新境界:仿小红书App项目推荐

探索Android开发新境界:仿小红书App项目推荐 【下载地址】AndroidStudio仿小红书App项目 本项目是一个基于Android Studio开发的仿小红书App的简单项目。通过这个项目,你可以学习到如何使用Android Studio进行Android应用开发,并且了解如何实现类似小红书的基本功能 ...

gitblog_09801的博客 440

MATPOWER的安装详细教程

MATPOWER的安装包实际为一个程序包,安装教程很简单,详见本文。

半个月亮Zz的博客 3万+

GNSS数据资源全解析:从DCB到BSX文件的下载与应用指南

本文系统解析了GNSS数据处理所需的核心数据资源,包括DCB、BSX、SP3、CLK等关键文件的官方下载路径与应用方法。详细介绍了CDDIS、武汉大学镜像站等权威数据源,并提供了从数据下载到实际应用的完整指南,帮助用户高效获取GNSS数据,提升精密定位处理效率。

weixin_29246195的博客 141

小红书自动化仿写发文机器人了解一下

小红书自动仿写发文机器人来了,免费送

码农飞哥 2255

从问卷到结论:手把手教你用SPSS 28完成一份完整的社科数据分析报告

本文详细介绍了如何使用SPSS 28完成社会科学研究中的数据分析报告,从问卷数据导入、清洗到描述性和推断性统计分析,再到结果呈现与报告撰写。通过实际案例演示,帮助研究者掌握SPSS 28的核心功能,提升数据分析效率与报告质量。

weixin_28717431的博客 249

springboot vue uniapp 仿小红书 1:1 还原 (含源码演示)

java spring boot vue uniapp 开发的防小红书系统

qq_35238367的博客 3381

保姆级教程:在STM32CubeIDE上快速部署micro_ros到STM32F407(附常见问题解决)

本文提供了一份详细的保姆级教程,指导开发者如何在STM32CubeIDE上快速部署micro_ros到STM32F407微控制器。内容涵盖从Windows与Ubuntu双环境搭建、micro-ROS静态库编译、STM32CubeIDE工程深度集成,到串口通信联调与常见问题解决的完整流程,旨在帮助读者构建稳定可靠的ROS2与嵌入式设备通信系统。

o4p5q6r7s的博客 324

Win10局域网内文件共享+远程桌面控制保姆级教程(含常见问题解决)

本文提供Win10局域网内文件共享和远程桌面控制的详细教程,包括环境检查、共享文件夹设置、远程桌面连接步骤及常见问题解决方案。通过内置功能实现高效办公协作,提升多设备协同工作效率,特别适合需要频繁传输文件或远程控制场景的专业人士。

rose2的博客 777

计算机仿小红书APP项目

了解ReactNative优势、【React基础知识和工程结构】掌握核心文件的用法和职能。具备更强的自定义组件能力、精通4种桥接方式,让RN能力无限延。全面掌握系统组件的使用方法、深刻理解RN核心API的功能。深刻理解解耦的精髓、掌握高阶组件强大的解耦和封装。项目实战仿写小红书App。

2401_82725953的博客 562

Python爬虫实战:使用Scrapy+Playwright高效爬取全球专利数据库

本文将详细介绍如何使用Python最新技术栈(Scrapy+Playwright)构建一个高效的专利数据库爬虫系统。我们将从爬虫基础知识讲起,逐步深入到反爬应对策略、分布式爬虫架构以及数据存储方案,最终实现一个完整的专利数据采集系统。专利数据是技术创新领域的重要信息资源,包含技术描述、权利要求、申请人信息等宝贵数据。中国国家知识产权局(CNIPA)美国专利商标局(USPTO)欧洲专利局(EPO)世界知识产权组织(WIPO)

2201_76125261的博客 1382

java仿小红书app(源码+开题报告)

本系统(程序+源码)带文档lw万字以上 文末可领取本课题的JAVA源码参考。

卢卡毕设程序 2263

q-learning精讲

Q-learning Q-learning是一种用于机器学习的强化学习技术。 Q-learning的目标是学习一种策略,告诉Agent在什么情况下要采取什么行动。 它不需要环境模型,可以处理随机转换和奖励的问题,而无需进行调整。 对于任何有限马尔可夫决策过程(FMDP),Q学习找到一种最优的策略,即从当前状态开始,它在任何和所有后续步骤中最大化总奖励的预期值。在给定无限探索时间和部分随机策略的情况...

weixin_41697507的博客 1万+

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

JienDa聊PHP:小红书仿站实战深度架构全解析​

摘要 本报告解析如何通过Laravel单一框架构建高性能小红书仿站,提出**"Laravel金字塔架构模型"**: 基础层:利用Eloquent ORM实现复杂数据关系(多态点赞、社交网络) 核心层:采用领域驱动设计划分内容/社交/电商模块,通过服务容器解耦 生态层:集成社会化登录、Elasticsearch搜索、Intervention图片处理等扩展 优化策略:读写分离、分表设计、队列异步处理应对高并发场景 该架构完美适配小红书"内容-社交-电商"三位一体业务模型,

Jien Da官方博客 926

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

上一篇: php laravel入门项目 CURD练习 API接口
下一篇: 博客项目 laravel vue mysql 第一章 前后端环境配置
四季豆豆豆
博客等级 码龄6年 101粉丝 24原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值