python旅游小项目

小旅游小项目展示

  • 本项目采用vant-UI作为项目的UI,快速成型界面,Vant的官方地址:
    • https://vant-contrib.gitee.io/vant/#/zh-CN/home
  • 前端页面采用Vue-cli成型,后端依靠Django,使用Api通信快速完成

前端页面展示

主页面

image-20210516174608315

搜索页面

image-20210516174902457

我的页面

image-20210516174932206


其他页面

image-20210516183234870image-20210516183306324image-20210516183327768
image-20210516183348170image-20210516183410062image-20210516183430778
image-20210516183447738image-20210516183510751image-20210516183528690
image-20210516183608618image-20210516183622793image-20210516183723165

后端页面展示

image-20210516230222393

屏幕截图 2021-05-12 223406

PDManORM建模

  • system模块
  • sight模块
  • accounts模块
  • order模块

关系图

image-20210516231057911


image-20210516231302325

API接口

accounts模块接口

####用户登录api

  • 请求URL(POST)
/account/user/api/login/
  • 请求参数
参数值类型描述
username必填用户名
password必填密码
  • 返回实例
{
    "user": {
        "nickname": "李四",
        "avatar": "http://localhost:8000/medias/avatar/202105/%E4%B8%BB%E4%BA%A7%E5%93%81.png",
        "username": "17083430700"
    },
    "profile": {
        "real_name": "ZRR",
        "sex": 1,
        "sex_display": "男"
    }
}

用户登出api
  • 请求URL(GET)
/account/user/api/logout/
  • 返回状态码status=201

用户注册api
  • 请求URL(POST)
/account/user/api/register/
  • 请求参数(需用到验证码接口)
参数值类型描述
username必填手机号
password必填密码
nickname必填昵称
sms_code必填验证码
  • 返回实例
{
    "user": {
        "nickname": "张三",
        "avatar": "",
        "username": "17083430701"
    },
    "profile": {
        "real_name": "",
        "sex": 1,
        "sex_display": "男"
    }
}

用户详细信息api
  • 请求URL(GET)
/account/user/api/info/
  • 返回实例
{
    "user": {
        "nickname": "张三",
        "avatar": "",
        "username": "17083430701"
    },
    "profile": {
        "real_name": "",
        "sex": 1,
        "sex_display": "男"
    }
}

system模块接口

轮播图api
  • 请求URL(GET)
/system/slider/list/
  • 返回实例
{
    "meta": {},
    "objects": [
        {
            "id": 1,
            "img_url": "http://localhost:8000/medias/202105/slider/banner2.png",
            "target_url": null,
            "name": "窦大夫祠"
        },
        {
            "id": 2,
            "img_url": "http://localhost:8000/medias/202105/slider/banner1.png",
            "target_url": null,
            "name": "二龙山"
        },
        {
            "id": 3,
            "img_url": "http://localhost:8000/medias/202105/slider/banner3.png",
            "target_url": null,
            "name": "崛围山"
        }
    ]
}

smsCodeapi
  • 请求URL(POST)
/system/send/sms/
  • 请求参数
参数值类型描述
phone_num必填手机号
  • 返回实例
{
    "phone_num": "17083430701",
    "sms_code": 397702,
    "timeout": 300
}

sight模块接口

景点列表api
  • 请求URL(GET)
/sight/sight/list/
  • 请求参数
参数值类型描述
page选填页码
is_hot选填是否热门
is_top选填是否精选
name选填名称
  • 返回实例
{
    "meta": {
        "total_count": 6,
        "page_count": 2,
        "current_page": 2
    },
    "objects": [
        {
            "id": 27,
            "name": "迎泽公园",
            "main_img": "http://localhost:8000/medias/202105/sight/wKgE2l1bTouAHckxACFKt8kMMXs85.jpg",
            "score": 5.0,
            "city": "太原",
            "min_price": 10.0,
            "province": "山西",
            "comment_count": 0
        }
    ]
}

景点缓存(redis)列表
  • 请求URL(GET)
/sight/sight/list/cache/
  • 同景点列表api一样

景点详细信息api
  • 请求URL(GET)
/sight/sight/detail/<int:pk>/
  • 返回实例
{
    "id": 1,
    "name": "二龙山",
    "desc": "二龙山",
    "img": "http://localhost:8000/medias/202105/sight/04f1842f6cea4753aebde62e9b680a97.jpg",
    "score": 5.0,
    "content": "<h1>位于太原市西北部,中北大学校内,山高百余米,景色秀丽,山上鲜花遍开,有益足道、爱心林、怡人台、龙山飞瀑、爱心台、长廊、大型草画等景点,为中北大学勤工助学学生修建而成。</h1>\r\n\r\n<hr />\r\n<p><span class=\"marker\">交通</span></p>\r\n\r\n<p>835路中北大学站</p>\r\n\r\n<p><span class=\"marker\">门票</span></p>\r\n\r\n<p>具体详情请咨询景区</p>\r\n\r\n<p><span class=\"marker\">开放时间</span></p>\r\n\r\n<p>全天 (1月1日-12月31日 周一-周日)</p>\r\n\r\n<hr />\r\n<h2>景点位置</h2>\r\n\r\n<p>山西省太原市尖草坪区上兰村(中北大学校园内)</p>",
    "province": "山西",
    "city": "太原",
    "area": "尖草坪",
    "town": "上兰村",
    "min_price": 10.0,
    "comment_count": 1,
    "image_count": 1
}

景点评论列表api
  • 请求URL(GET)
/comment/list/<int:pk>/
  • 请求参数
参数值类型描述
page选填页码
  • 返回实例
{
    "meta": {
        "total_count": 1,
        "page_count": 1,
        "current_page": 1
    },
    "objects": [
        {
            "user": {
                "pk": 2,
                "nickname": "李四"
            },
            "pk": 2,
            "content": "二龙山又名烈石山,西临汾河,地势险要,是太原的北大门。解放战争期间,阎锡山军队在烈石山上修建了大量军事设施,现保存有碉堡3座、地下暗道1处。二龙山,在太原市西北角中北大学校园内,是少有的和校园相依托的风景区。山势不太高,但是景色秀丽,山上鲜花遍布,景点众多,太原二龙山旅游风景区是太原为数不多的避暑胜地。",
            "love_count": 65,
            "score": 5.0,
            "is_public": 1,
            "images": [
                {
                    "img": "http://localhost:8000/medias/202105/file/c711f75cfc1f4f3d8c009bbb21919a2e.jpg",
                    "summary": "二龙山评论"
                },
                {
                    "img": "http://localhost:8000/medias/202105/file/2427bc6964aa48b08ec3b6fc56de6552.jpg",
                    "summary": "二龙山评论"
                },
                {
                    "img": "http://localhost:8000/medias/202105/file/019f654a568044a5ae091043923c378c.jpg",
                    "summary": "二龙山评论"
                }
            ],
            "created_at": "2021-04-15"
        }
    ]
}

景点下的门票列表api
  • 请求URL(GET)
/ticket/list/<int:pk>/
  • 请求参数
参数值类型描述
page选填页码
  • 返回实例
{
    "meta": {
        "total_count": 1,
        "page_count": 1,
        "current_page": 1
    },
    "objects": [
        {
            "pk": 1,
            "name": "二龙山门票",
            "desc": "23:52前可订明日",
            "types": 11,
            "price": 10.0,
            "discount": 10.0,
            "total_stock": 100000,
            "remain_stock": 99976,
            "sell_price": 10.0
        }
    ]
}

####景点介绍api

  • 请求URL(GET)
/sight/info/<int:pk>/
  • 返回实例
{
    "pk": 1,
    "entry_explain": "<h1>位于太原市西北部,中北大学校内,山高百余米,景色秀丽,山上鲜花遍开,有益足道、爱心林、怡人台、龙山飞瀑、爱心台、长廊、大型草画等景点,为中北大学勤工助学学生修建而成。</h1>\r\n\r\n<hr />\r\n<p>交通</p>\r\n\r\n<p>835路中北大学站</p>\r\n\r\n<p>门票</p>\r\n\r\n<p>具体详情请咨询景区</p>\r\n\r\n<p>开放时间</p>\r\n\r\n<p>全天 (1月1日-12月31日 周一-周日)</p>\r\n\r\n<hr />\r\n<h2>景点位置</h2>\r\n\r\n<p>山西省太原市尖草坪区上兰村(中北大学校园内)</p>",
    "play_way": "<h3>二龙山又名烈石山,西临汾河,地势险要,是太原的北大门。解放战争期间,阎锡山军队在烈石山上修建了大量军事设施,现保存有碉堡3座、地下暗道1处。二龙山,在太原市西北角中北大学校园内,是少有的和校园相依托的风景区。山势不太高,但是景色秀丽,山上鲜花遍布,景点众多,太原二龙山旅游风景区是太原为数不多的避暑胜地。</h3>\r\n\r\n<p><img src=\"https://ss2.meipian.me/users/418550/2340c93ebce0477b82788c24318edabb.jpg?imageView2/2/w/750/h/1400/q/80\" /></p>\r\n\r\n<p><img src=\"https://ss2.meipian.me/users/418550/719ec2d7ebce4ac88f286ea863e243d7.jpg?imageView2/2/w/750/h/1400/q/80\" /></p>\r\n\r\n<p><img src=\"https://ss2.meipian.me/users/418550/9a7d9bb6b64d427d871efb3619d8bfd9.jpg?imageView2/2/w/750/h/1400/q/80\" /></p>\r\n\r\n<p><img src=\"https://ss2.meipian.me/users/418550/0b7568fc46794e778ac4204cfff7c403.jpg?imageView2/2/w/750/h/1400/q/80\" /></p>\r\n\r\n<p><img src=\"https://ss2.meipian.me/users/418550/887b1678c5c84c11a0fd34439abdb8ba.jpg?imageView2/2/w/750/h/1400/q/80\" /></p>\r\n\r\n<p><img src=\"https://ss2.meipian.me/users/418550/fb1d4c4aa4f94fe48f6a5f59f35e4c8d.jpg?imageView2/2/w/750/h/1400/q/80\" /></p>\r\n\r\n<p><img src=\"https://ss2.meipian.me/users/418550/0f48ef1e3f94444d86a871eafa69f47e.jpg?imageView2/2/w/750/h/1400/q/80\" /></p>\r\n\r\n<p><img src=\"https://ss2.meipian.me/users/418550/019f654a568044a5ae091043923c378c.jpg?imageView2/2/w/750/h/1400/q/80\" /></p>\r\n\r\n<p><img src=\"https://ss2.meipian.me/users/418550/2427bc6964aa48b08ec3b6fc56de6552.jpg?imageView2/2/w/750/h/1400/q/80\" /></p>\r\n\r\n<p><img src=\"https://ss2.meipian.me/users/418550/2ffe0923eedc4765888ce1ff6cda71a4.jpg?imageView2/2/w/750/h/1400/q/80\" /></p>\r\n\r\n<p><img src=\"https://ss2.meipian.me/users/418550/20c36e99210f41e9a3706d05e4ea6cc8.jpg?imageView2/2/w/750/h/1400/q/80\" /></p>\r\n\r\n<p><img src=\"https://ss2.meipian.me/users/418550/ed7886c77b0b42e3b7d7c32fe60805ef.jpg?imageView2/2/w/750/h/1400/q/80\" /></p>\r\n\r\n<p><img src=\"https://ss2.meipian.me/users/418550/c711f75cfc1f4f3d8c009bbb21919a2e.jpg?imageView2/2/w/750/h/1400/q/80\" /></p>\r\n\r\n<p><img src=\"https://ss2.meipian.me/users/418550/04f1842f6cea4753aebde62e9b680a97.jpg?imageView2/2/w/750/h/1400/q/80\" /></p>\r\n\r\n<p><img src=\"https://ss2.meipian.me/users/418550/12e2e1a4def4490dae87237799a55ee8.jpg?imageView2/2/w/750/h/1400/q/80\" /></p>\r\n\r\n<p><img src=\"https://ss2.meipian.me/users/418550/10651892dc234bc7b63dab3263dccf85.jpg?imageView2/2/w/750/h/1400/q/80\" /></p>\r\n\r\n<p><img src=\"https://ss2.meipian.me/users/418550/7b0c11d676f749478e827ca7b35d54ac.jpg?imageView2/2/w/750/h/1400/q/80\" /></p>\r\n\r\n<p><img src=\"https://ss2.meipian.me/users/418550/2f47940515ed4d06bcf4ecc29bbcffc4.jpg?imageView2/2/w/750/h/1400/q/80\" /></p>\r\n\r\n<p><img src=\"https://ss2.meipian.me/users/418550/32920e45f036419fa09a7c9c51cfbbd3.jpg?imageView2/2/w/750/h/1400/q/80\" /></p>\r\n\r\n<p><img src=\"https://ss2.meipian.me/users/418550/bef9359ad2354ef88a49453c02ced182.jpg?imageView2/2/w/750/h/1400/q/80\" /></p>\r\n\r\n<p><img src=\"https://ss2.meipian.me/users/418550/e64328fb06cf40d1b9288924f4af3dc8.jpg?imageView2/2/w/750/h/1400/q/80\" /></p>\r\n\r\n<p><img src=\"https://ss2.meipian.me/users/418550/f2f1c116018d43e59c5ed55f6940be7a.jpg?imageView2/2/w/750/h/1400/q/80\" /></p>\r\n\r\n<p><img src=\"https://ss2.meipian.me/users/418550/232bf0fa1d0d475c9704e8c29dc41147.jpg?imageView2/2/w/750/h/1400/q/80\" /></p>\r\n\r\n<p><img src=\"https://ss2.meipian.me/users/418550/6253aa30173e454bb78bb9f79756f191.jpg?imageView2/2/w/750/h/1400/q/80\" /></p>",
    "tips": "<h4><strong>小贴士</strong></h4>\r\n\r\n<p>交通</p>\r\n\r\n<p>835路中北大学站</p>\r\n\r\n<p>门票</p>\r\n\r\n<p>具体详情请咨询景区</p>\r\n\r\n<p>开放时间</p>\r\n\r\n<p>全天 (1月1日-12月31日 周一-周日)</p>",
    "traffic": "<h2>景点位置</h2>\r\n\r\n<p>山西省太原市尖草坪区上兰村(中北大学校园内)</p>"
}

景点详情图片列表api
  • 请求URL(GET)
/sight/image/list/<int:pk>
  • 请求参数
参数值类型描述
page选填页码
  • 返回实例
{
    "meta": {
        "total_count": 1,
        "page_count": 1,
        "current_page": 1
    },
    "objects": [
        {
            "image": "http://localhost:8000/medias/202105/file/2ffe0923eedc4765888ce1ff6cda71a4.jpg",
            "summary": "二龙山基础"
        }
    ]
}

门票详情api
  • 请求URL(GET)
/sight/ticket/detail/<int:pk>
  • 返回实例
{
    "pk": 1,
    "name": "二龙山门票",
    "desc": "23:52前可订明日",
    "types": 11,
    "price": 10.0,
    "sell_price": 10.0,
    "discount": 10.0,
    "expire_date": 7,
    "return_policy": "联系管理员",
    "has_invoice": true,
    "entry_way": "短信换票入园",
    "tips": "<div>位于太原市西北部,中北大学校内,山高百余米,景色秀丽,山上鲜花遍开,有益足道、爱心林、怡人台、龙山飞瀑、爱心台、长廊、大型草画等景点,为中北大学勤工助学学生修建而成。</div>\r\n\r\n<hr />\r\n<p>交通</p>\r\n\r\n<p>835路中北大学站</p>\r\n\r\n<p>门票</p>\r\n\r\n<p>具体详情请咨询景区</p>\r\n\r\n<p>开放时间</p>\r\n\r\n<p>全天 (1月1日-12月31日 周一-周日)</p>\r\n\r\n<hr />\r\n<h2>景点位置</h2>\r\n\r\n<p>山西省太原市尖草坪区上兰村(中北大学校园内)</p>",
    "remark": "<p>这里没有小<span class=\"marker\">tips</span></p>"
}

order模块接口

订单提交api
  • 请求URL(POST)
/order/ticket/submit/
  • 请求参数
参数值类型描述
ticket_id必填门票ID
play_date必填出行时间
to_user必填用户昵称
to_phone必填用户手机号
buy_count必填购买总价
  • 返回实例
{
    "sn": "202105171247379691779086"
}

####订单详情api

  • 请求URL(GET)
/order/order/detail/<int:sn>
  • 返回实例
{
    "sn": "202105171247379691779086",
    "buy_count": 20,
    "buy_amount": 200.0,
    "types": 10,
    "status": 11,
    "created_at": "2021-05-17",
    "remark": null,
    "to_user": "李四",
    "to_area": "",
    "to_address": "",
    "to_phone": "17083430700",
    "express_type": null,
    "express_no": null,
    "items": [
        {
            "pk": 21,
            "flash_name": "二龙山门票",
            "flash_price": 10.0,
            "flash_img": "http://localhost:8000/medias/202105/sight/7b0c11d676f749478e827ca7b35d54ac.jpg",
            "flash_origin_price": 10.0,
            "flash_discount": 10.0,
            "count": 20,
            "amount": 200.0,
            "remark": "出行时间2021-05-20",
            "object_id": 1,
            "app_label": "sight",
            "model": "ticket"
        }
    ]
}

订单列表
  • 请求URL(GET)
/order/order/list/
  • 请求参数
参数值类型描述
page选填描述
  • 返回实例
{
    "meta": {
        "total_count": 1,
        "page_count": 1,
        "current_page": 1
    },
    "objects": [
        {
            "sn": "202105171247379691779086",
            "buy_amount": 200.0,
            "buy_count": 20,
            "types": 10,
            "status": 11,
            "remark": null,
            "created_at": "2021-05-17",
            "item_first": {
                "pk": 21,
                "flash_name": "二龙山门票",
                "flash_price": 10.0,
                "flash_img": "http://localhost:8000/medias/202105/sight/7b0c11d676f749478e827ca7b35d54ac.jpg",
                "flash_origin_price": 10.0,
                "flash_discount": 10.0,
                "count": 20,
                "amount": 200.0,
                "remark": "出行时间2021-05-20",
                "object_id": 1,
                "app_label": "sight",
                "model": "ticket"
            }
        }
    ]
}

全局状态Code

statusCode描述
4044004000您访问的内容不存在或被删除
4004000000参数格式不正确
4054050000表单请求方式错误
4014010000请登录
5005000000服务器正忙,请稍后重试
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小丸子好萌!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值