flask爱家租房项目开发(一)

目录

需求文档

创建工程目录以及flask配置

配置日志信息

数据库设计与迁移

静态文件的配置,使浏览器可以正常访问文件

csrf 防护机制


需求文档

需求功能

1. 主页
    1.1 最多5个房屋logo图片展示,点击可跳转至房屋详情页面
    1.2 提供登陆/注册入口,登陆后显示用户名,点击可跳转至个人中心
    1.3 用户可以选择城区、入住时间、离开时间等条件进行搜索
    1.4 城区的区域信息需动态加载

2. 注册
    2.1 用户账号默认为手机号
    2.2 图片验证码正确后才能发送短信验证码
    2.3 短信验证码每60秒可发送一次
    2.4 每个条件出错时有相应错误提示

3. 登陆
    3.1 用手机号与密码登陆
    3.2 错误时有相应提示

4. 房屋列表页
    4.1 可根据入住离开时间、区域进行筛选,并可进行排序
    4.2 房屋信息分页加载
    4.3 区域信息动态加载
    4.4 筛选条件更新后,页面立即刷新

5. 房屋详情页
    5.1 需展示的详细信息参考设计图
    5.2 提供预定入口
    5.3 若是房东本人查看房屋信息时,预定入口不显示

6. 房屋预定
    6.1 由用户确定入住时间
    6.2 根据用户确定的入住离开时间实时显示合计天数与总金额

7. 我的爱家
    7.1 显示个人头像、手机号、用户名(用户名未设置时为用户手机号)
    7.2 提供修改个人信息的入口
    7.3 提供作为房客下单的查询入口
    7.4 提供成为房东所需实名认证的入口
    7.5 提供作为房东发布房屋信息的入口
    7.6 提供作为房东查询客户订单的入口
    7.7 提供退出的入口

8. 个人信息修改
    8.1 可以修改个人头像
    8.2 可以修改用户名
    8.3 登陆手机号不能修改
    8.4 上传头像与用户名分开保存
    8.5 上传新头像后页面理解显示新头像

9. 我的订单(房客)
    9.1 按时间倒序显示订单信息
    9.2 订单完成后提供评价功能
    9.3 已评价的订单能看到评价信息
    9.4 被拒绝的订单能看到拒单原因

10. 实名认证
    10.1 实名认证只可进行一次
    10.2 提交认证信息后再次进入只能查看信息,不能修改
    10.3 认证信息包含姓名与身份证号

11. 我的房源
    11.1 未实名认证的用户不能发布新房源信息,需引导到实名认证页面
    11.2 按时间倒序显示已经发布的房屋信息
    11.3 点击房屋可以进入详情页面
    11.4 对实名认证的用户提供发布新房屋的入口

12. 发布新房源
    12.1 需要用户填写全部房屋信息
    12.2 房屋的文字信息与图片分开操作

13. 客户订单(房东)
    13.1 按时间倒序显示用户下的订单
    13.2 对于新订单提供接单与拒单的功能
    13.3 拒单必须填写拒单原因
    13.4 若客户进行了订单评价,需显示

14. 退出
    14.1 提供退出功能

本节要求:

  1. 创建工程目录以及配置
  2. 日志的配置
  3. 数据库设计与迁移
  4. 静态文件的配置,使浏览器可以正常访问文件

在项目开始之前,请自行安装如下:python3,mysql5.7,redis,pycharm,navicat

mysql5.7安装配置参考链接:链接1下载发生系统错误2

创建工程目录以及flask配置

在项目目录下创建空目录iHome-python04作为flask项目的主工程目录,在ihome-python04目录下创建以下:

ihome(python包)

     --init.py

     --api_1_0(python 包)

         --init.py

config.py(主配置文件)

首先编写config.py配置文件,主要是配置环境,包括基础环境、开发者模式环境以及生产(线上)环境:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import redis  # pip install redis, 系统上也要安装redis,并启动服务,自行百度


class Config(object):
    """基础配置信息"""
    SECRET_KEY = "js@dhfkjbkjfbsjdfg2"   # 内容随便填

    # 数据库
    SQLALCHEMY_DATABASE_URI = "mysql+pymysql://root:123456@127.0.0.1:3306/ihome"
    SQLALCHEMY_TRACK_MODIFICATIONS = True

    # redis
    REDIS_HOST = "127.0.0.1"
    REDIS_PORT = 6379

    # flask-session 配置  详细参见:https://pythonhosted.org/Flask-Session/
    SESSION_TYPE = "redis"
    SESSION_REDIS = redis.StrictRedis(host=REDIS_HOST, port=REDIS_PORT)
    SESSION_USE_SIGNER = True  # 对cookie中的session_id设置隐藏处理
    PERMANENT_SESSION_LIFETIME = 86400  # session数据的有效期,单位:秒


class DevelopmentConfig(Config):
    """开发者模式的配置信息"""
    DEBUG = True


class ProductionConfig(Config):
    """生产环境的配置信息"""
    pass


# 映射关系
config_map = {
    "develop": DevelopmentConfig,
    "product": ProductionConfig,
}

编写ihome下的init.py文件

#!/usr/bin/env python
# -*- coding: utf-8 -*-


import redis

from flask import Flask  # pip install flask
from flask_sqlalchemy import SQLAlchemy  # pip install flask_sqlalchemy
from flask_session import Session
from flask_wtf import CSRFProtect

from config import config_map


# 数据库
db = SQLAlchemy()

# 创建redis连接对象
redis_store = None


# 工厂模式
def create_app(config_name):
    """
    创建flask的应用对象
    :param config_name:  str  配置模式的名字  (&#
  • 6
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

秒不可闫M先生

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

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

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

打赏作者

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

抵扣说明:

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

余额充值