日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python flask智能租房项目——详情页

發(fā)布時(shí)間:2023/12/31 python 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python flask智能租房项目——详情页 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

基本信息展示

1. 后端接?設(shè)計(jì)

接?描述 接?參數(shù)
請(qǐng)求?? 詳情?
請(qǐng)求?式 GET
請(qǐng)求地址 /house/int:hid
返回?cái)?shù)據(jù) 房源對(duì)象,包括:id、address、rooms、area、price、liulanliang等信息
房源數(shù)據(jù)所需字段如下:
參數(shù) 類型 說(shuō)明
id int 房源id
title str 標(biāo)題
rooms str 戶型
area str ?積
price str 價(jià)格
addr str 房源地址
traffic str 交通情況
region str 地區(qū)
direction str 朝向
type str 瀏覽量
time int 發(fā)布時(shí)間,格式是時(shí)間戳
liangdian str 房屋亮點(diǎn)
sheshi str 房屋?帶的電器、家具等設(shè)施
tel str 房東電話

2. 后端邏輯

# 實(shí)現(xiàn)房源的基本信息展示 """ 1. 創(chuàng)建?個(gè)視圖函數(shù) 動(dòng)態(tài)路由 /house/<int:hid> method=get 2. 使?房源編號(hào) 通過(guò)sqlalchemy獲取編號(hào)對(duì)應(yīng)的房源對(duì)象 就可以獲取對(duì)象中的信息了 3. 使?render_template進(jìn)?模板的渲染 """ @detail_page.route('/house/<int:hid>') def detail(hid): # 使?房源編號(hào) 通過(guò)sqlalchemy獲取編號(hào)對(duì)應(yīng)的房源對(duì)象 house = House.query.get(hid) # 處理配套設(shè)施的數(shù)據(jù),變換成列表 sheshi_str = house.sheshi # 床-寬帶-洗?機(jī)-空調(diào)-熱?器-暖? sheshi_list = sheshi_str.split('-') return render_template('detail_page.html', house=house, sheshi=sheshi_list)

配套設(shè)施
之前我們存放在數(shù)據(jù)庫(kù)中的配套設(shè)施信息是這樣的
空調(diào)-熱?器-暖?-可做飯-衛(wèi)?間
所以我們?cè)谑?的時(shí)候,需要對(duì)其進(jìn)?處理,轉(zhuǎn)換成 [‘空調(diào)’, ‘熱?器’,‘暖?’,‘可做飯’,‘衛(wèi)?間’]

3. 前端邏輯

<!--大標(biāo)題--><div class="col-lg-12 col-md-12 detail-header"><h3>{{ house.address }}&nbsp{{ house.rooms }}</h3><div class="describe"><span>為您精準(zhǔn)定位,當(dāng)前城市房源信息</span></div></div><!--左詳情--><div class="col-lg-8 col-md-8"><div class="course"><!--圖--><div><a href="#"><img class='img-fluid img-box' src="/static/img/house-bg1.jpg" alt=""></a></div><!--價(jià)格--><div class="house-info"><span class="price">¥&nbsp{{ house.price }}/月</span><span class="collection" id="btn-collection"><a><i class="fa fa-heart"aria-hidden="true"> 收藏</i></a></span></div><!--基本信息標(biāo)題--><div class="attribute-header"><h4>基本信息</h4></div><!--屬性1--><div class="row attribute-info"><div class="col-lg-2 col-md-2"><span class="attribute-text">基本屬性</span></div><div class="col-lg-4 col-md-4"><div><span class="attribute-text">房屋戶型:</span><span class="info-text">{{ house.rooms }}</span></div><div><span class="attribute-text">建筑面積:</span><span class="info-text">{{ house.area }}平米</span></div><div><span class="attribute-text">房屋朝向:</span><span class="info-text">{{ house.direction }}</span></div></div><div class="col-lg-6 col-md-6"><div><span class="attribute-text">所在區(qū)域:</span><span class="info-text">{{ house.address }}</span></div><div><span class="attribute-text">租住類型:</span><span class="info-text">{{ house.rent_type }}</span></div><div><span class="attribute-text">房東電話:</span><span class="info-text">{{ house.phone_num }}</span></div></div></div><!--屬性2--><div class="row attribute-info"><div class="col-lg-2 col-md-2"><span class="attribute-text">房屋賣點(diǎn)</span></div><div class="col-lg-8 col-md-8"><div><span class="attribute-text">交通條件:</span><span class="info-text">{{ house.traffic | dealNone }}</span></div><div><span class="attribute-text">優(yōu)勢(shì)條件:</span><span class="info-text">{{ house.title }}</span></div></div></div><!--房源配套設(shè)施--><div class="attribute-header"><h4>房源配套設(shè)施</h4></div><!--設(shè)施列表--><div class="row attribute-info"><div class="col-lg-2 col-md-2"><span class="icon-1"></span>{% if '冰箱' in sheshi %}<span class="attribute-text-sm" style="color: #f1c40f">冰箱</span>{% else %}<span class="attribute-text-sm"><s>冰箱</s></span>{% endif %}</div><div class="col-lg-2 col-md-2"><span class="icon-2"></span>{% if '洗衣機(jī)' in sheshi %}<span class="attribute-text-sm" style="color: #f1c40f">洗衣機(jī)</span>{% else %}<span class="attribute-text-sm"><s>洗衣機(jī)</s></span>{% endif %}</div><div class="col-lg-2 col-md-2"><span class="icon-3"></span>{% if '電視' in sheshi %}<span class="attribute-text-sm" style="color: #f1c40f">電視</span>{% else %}<span class="attribute-text-sm"><s>電視</s></span>{% endif %}</div><div class="col-lg-2 col-md-2"><span class="icon-4"></span>{% if '空調(diào)' in sheshi %}<span class="attribute-text-sm" style="color: #f1c40f">空調(diào)</span>{% else %}<span class="attribute-text-sm"><s>空調(diào)</s></span>{% endif %}</div><div class="col-lg-2 col-md-2"><span class="icon-5"></span>{% if '暖氣' in sheshi %}<span class="attribute-text-sm" style="color: #f1c40f">暖氣</span>{% else %}<span class="attribute-text-sm"><s>暖氣</s></span>{% endif %}</div></div><div class="row attribute-info"><div class="col-lg-2 col-md-2"><span class="icon-6"></span>{% if '熱水器' in sheshi %}<span class="attribute-text-sm" style="color: #f1c40f">熱水器</span>{% else %}<span class="attribute-text-sm"><s>熱水器</s></span>{% endif %}</div><div class="col-lg-2 col-md-2"><span class="icon-7"></span>{% if '天然氣' in sheshi %}<span class="attribute-text-sm" style="color: #f1c40f">天然氣</span>{% else %}<span class="attribute-text-sm"><s>天然氣</s></span>{% endif %}</div><div class="col-lg-2 col-md-2"><span class="icon-8"></span>{% if '床' in sheshi %}<span class="attribute-text-sm" style="color: #f1c40f"></span>{% else %}<span class="attribute-text-sm"><s></s></span>{% endif %}</div><div class="col-lg-2 col-md-2"><span class="icon-9"></span>{% if '寬帶' in sheshi %}<span class="attribute-text-sm" style="color: #f1c40f">WIFI</span>{% else %}<span class="attribute-text-sm"><s>WIFI</s></span>{% endif %}</div><div class="col-lg-2 col-md-2"><span class="icon-10"></span>{% if '電梯' in sheshi %}<span class="attribute-text-sm" style="color: #f1c40f">電梯</span>{% else %}<span class="attribute-text-sm"><s>電梯</s></span>{% endif %}</div></div></div></div>

戶型占?

1. 后端接?設(shè)計(jì)

接?描述 接?參數(shù)
請(qǐng)求?? 詳情?
請(qǐng)求?式 GET
請(qǐng)求地址 /get/piedata/
返回?cái)?shù)據(jù) json數(shù)據(jù)格式

{'data': [{'name':'2室1廳', 'value':86}, {'name':'3室1廳', 'value':69}]}

每?組的房源數(shù)據(jù)所需字段如下:
參數(shù) 類型 說(shuō)明
name str 戶型
value int 數(shù)量

2. 效果及功能介紹


功能的作?:
統(tǒng)計(jì)房源所屬街道的戶型占?
功能的?途:
提供房源附近的戶型占?信息,?便?戶了解哪種戶型更加好找
關(guān)于所屬街道的解釋:
房源的address:順義-順義城-怡馨家園
那么房源所屬街道:順義-順義城,對(duì)應(yīng)房源的block字段

3. 戶型占?功能實(shí)現(xiàn)邏輯

4.1 第?步和第?步 前端發(fā)送請(qǐng)求

// 獲取pie $.ajax({ url: "/get/piedata/{{ house.block }}", type: 'get', dataType: 'json', success: function (data) { pie_chart(data['data']) } });

4.2 第三步 數(shù)據(jù)選擇、處理、變換和返回

# 實(shí)現(xiàn)戶型占比功能 """ 1. 創(chuàng)建一個(gè)視圖函數(shù) /get/piedata/<block> get請(qǐng)求方式 2. 獲取block字段 使用sqlalchemy來(lái)查詢符合block字段的房源 3. 分組統(tǒng)計(jì)房源中的戶型 和 數(shù)量 根據(jù)數(shù)量對(duì) 戶型進(jìn)行排序 降序排序 4. 封裝數(shù)據(jù) 5. 提交給echarts """ @detail_page.route('/get/piedata/<block>') def return_pie_data(block):print(block)# 1. 選擇 filter(House.block == block)# 2. 預(yù)處理 group_by(House.rooms).order_by(func.count().desc())# 3. 預(yù)處理的結(jié)果是 resultresult = House.query.with_entities(House.rooms, func.count()).filter(House.block == block).group_by(House.rooms).order_by(func.count().desc()).all()# 4. 對(duì)數(shù)據(jù)進(jìn)行變換 result ==> {'name': one_house[0], 'value': one_house[1]}data = []for one_house in result:data.append({'name': one_house[0], 'value': one_house[1]})return jsonify({'data': data})

4.3. 渲染-數(shù)據(jù)展示

function pie_chart(data) {var myChart = echarts.init(document.getElementById('pie'));window.addEventListener('resize', function () {myChart.resize();});var option = {tooltip : {trigger: 'item',formatter: "{a} <br/>{b} : {c} (ozvdkddzhkzd%)",},series:[{name: '戶型的占比',type: 'pie',radius: ['0%', '50%'],center: ['50%', '50%'],labelLine: {normal: {show: true},// 選中后加重表現(xiàn)emphasis: {show: true}},// 餅狀圖的內(nèi)部名字label: {normal: {show: true},emphasis: {show: true}},//itemStyle: {emphasis: {shadowBlur: 10,shadowOffsetX: 0,shadowColor: 'rgba(0, 0, 0, 0.5)'}},data: data,}]};myChart.setOption(option); }

?區(qū)房源數(shù)量TOP20

1. 后端接?設(shè)計(jì)

接?描述 接?參數(shù)
請(qǐng)求?? 詳情?-當(dāng)前街道的?區(qū)數(shù)量top20
請(qǐng)求?式 GET
請(qǐng)求地址 /get/columndata/
返回?cái)?shù)據(jù) json數(shù)據(jù)格式
圖表類型 柱狀圖

{'name_list_x': ['紫??安', '橡樹(shù)灣', '友誼嘉園', '?釣?臺(tái)嘉園', '華清嘉園', '永旺家園', '碧?云天', '??坊回遷房', '遠(yuǎn)?園五區(qū)', '常?園北?', '緣溪堂', '頤源居', '五福玲瓏居', '萬(wàn) 泉新新家園', '京泉馨苑', '世紀(jì)城晨?園', '頤慧佳園', '肖家河新村東區(qū)', '柳浪家園', '上地東?', '曙光花園望?園', '和泓四季'], 'num_list_y': [123, 95, 86, 85, 81, 77, 73, 73, 67, 63, 62, 60, 58, 56, 55, 54, 52, 49, 48, 48, 46, 44]}

參數(shù) 類型 說(shuō)明
name_list_x 列表 X軸的變量,?區(qū)名稱
num_list_y 列表 Y軸的變量,?區(qū)數(shù)量

2. 效果及功能介紹


功能的作?:
先獲取房源所處街道附近的所有?區(qū),然后統(tǒng)計(jì)各個(gè)?區(qū)的在租房源數(shù)量
功能的?途:
提供房源附近各個(gè)?區(qū)在租房源數(shù)量,?便?戶尋找?標(biāo)房源

4.1 第?步 前端發(fā)送請(qǐng)求

// 獲取column$.ajax({url: "/get/columndata/{{ house.block }}",type: 'get',dataType: 'json',success: function (data) {column_chart(data['data'])}});

4.2 第?步 數(shù)據(jù)選擇、處理變換和返回?cái)?shù)據(jù)

# 實(shí)現(xiàn)本地區(qū)小區(qū)數(shù)量TOP20功能 """ 1. 創(chuàng)建一個(gè)視圖函數(shù) /get/columndata/<block> get請(qǐng)求方式 2. 獲取block字段 使用sqlalchemy獲取符合這個(gè)block字段的所有房源數(shù)據(jù) --- 目標(biāo)數(shù)據(jù) 3. 預(yù)處理 對(duì)目標(biāo)數(shù)據(jù) 進(jìn)行分組 依據(jù)小區(qū)名字進(jìn)行分組 統(tǒng)計(jì)每個(gè)小區(qū)的房源數(shù)量 就可以根據(jù)房源數(shù)量 對(duì)小區(qū)進(jìn)項(xiàng)排序 降序排序的方式————預(yù)處理的結(jié)果 4. 進(jìn)行數(shù)據(jù)的變換 變換成能夠提交給echarts的數(shù)據(jù)格式 5. 使用jsonify返回?cái)?shù)據(jù)給前端 """ @detail_page.route('/get/columndata/<block>') def return_bar_data(block):result = House.query.with_entities(House.address, func.count()).filter(House.block == block).group_by(House.address).order_by(func.count().desc()).all() # 小區(qū)名字出現(xiàn)在address這個(gè)字段中# {'name_list_x':['xxx小區(qū)','xxx小區(qū)','xxx小區(qū)'],'num_list_y':[160,149,128]}name_list = []num_list = []for addr, num in result:# 順義-順義城-西辛南區(qū) ==> ['順義-順義城', '西辛南區(qū)'] ==> 西辛南區(qū)xiaoqu_name = addr.rsplit('-', 1)[1]name_list.append(xiaoqu_name)![在這里插入圖片描述](https://img-blog.csdnimg.cn/b9d7e97b29fd4e50a0b614a115c4f427.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAcGVhY2V6aGk=,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)num_list.append(num)# 獲取TOP20的數(shù)據(jù) 大于20的就直接舍去if len(name_list) > 20:data = {'name_list_x': name_list[:20], 'num_list_y': num_list[:20]}else:data = {'name_list_x': name_list, 'num_list_y': num_list}return jsonify({'data': data})

4.3 渲染-數(shù)據(jù)展示

function column_chart(data) {var salaru_line = echarts.init(document.getElementById('scolumn_line'));window.addEventListener('resize', function () {salaru_line.resize();});// var XData=['東方鳳雅臺(tái)', '仙桐御景', '仙湖山莊二期', '仙湖楓景家園', '蘭亭國(guó)際公寓', '華景園御庭軒', '合正錦園一期', '名駿豪庭', '廣嶺家園', '新世界四季御園', '新世界鹿茵翠地', '桐景花園', '聚寶華府', '金色年華家園', '鴻景翠峰', '鵬興花園一期', '鵬興花園三期', '鵬興花園二期', '鵬興花園六期', '鵬蓮花園'];// var yData=[1, 1, 1, 3, 1, 1, 1, 3, 4, 1, 1, 1, 2, 2, 1, 2, 1, 8, 1, 1];// {'name_list_x': name_list, 'num_list_y': num_list}var XData = data['name_list_x'];var yData = data['num_list_y'];var dataMin = parseInt(Math.min.apply(null, yData)/2);var option = {backgroundColor: "#fff",grid: {height:'200px'},xAxis: {axisTick: {show: false},splitLine: {show: false},splitArea: {show: false},data: XData,axisLabel: {formatter: function (value) {var ret = ""; //拼接加\n返回的類目項(xiàng)var maxLength = 1; //每項(xiàng)顯示文字個(gè)數(shù)var valLength = value.length; //X軸類目項(xiàng)的文字個(gè)數(shù)var rowN = Math.ceil(valLength / maxLength); //類目項(xiàng)需要換行的行數(shù)if (rowN > 1) //如果類目項(xiàng)的文字大于3,{for (var i = 0; i < rowN; i++) {var temp = ""; //每次截取的字符串var start = i * maxLength; //開(kāi)始截取的位置var end = start + maxLength; //結(jié)束截取的位置//這里也可以加一個(gè)是否是最后一行的判斷,但是不加也沒(méi)有影響,那就不加吧temp = value.substring(start, end) + "\n";ret += temp; //憑借最終的字符串}return ret;} else {return value;}},interval: 0,fontSize: 11,fontWeight: 100,textStyle: {color: '#555',}},axisLine: {lineStyle: {color: '#4d4d4d'}}},yAxis: {axisTick: {show: false},splitLine: {show: false},splitArea: {show: false},min: dataMin,axisLabel: {textStyle: {color: '#9faeb5',fontSize: 16,}},axisLine: {lineStyle: {color: '#4d4d4d'}}},"tooltip": {"trigger": "item","textStyle": {"fontSize": 12},"formatter": "{b0}: {c0}套"},series: [{type: "bar",itemStyle: {normal: {color: {type: 'linear',x: 0,y: 0,x2: 0,y2: 1,colorStops: [{offset: 0,color: '#00d386' // 0% 處的顏色}, {offset: 1,color: '#0076fc' // 100% 處的顏色}],globalCoord: false // 缺省為 false},barBorderRadius: 15,}},// barWidth: 7,data: yData}]};salaru_line.setOption(option, true); }

戶型價(jià)格?勢(shì)

1. 后端接?設(shè)計(jì)

接?描述 接?參數(shù)
請(qǐng)求?? 詳情?
請(qǐng)求?式 GET
請(qǐng)求地址 /get/brokenlinedata/
返回?cái)?shù)據(jù) json數(shù)據(jù)格式
圖表類型 折線圖

{'data': {'2室1廳': [50.6, 45.32], '1室1廳': [48.36, 51.08], '2室2廳': [48.34, 59.42] , '3室2廳': [48.28, 48.14]}}

2. 效果及功能介紹

功能的作?:
先獲取房源所處街道附近的所有房源價(jià)格,然后獲取最近半個(gè)?四個(gè)戶型的平均價(jià)格(租?/?積)
功能的?途:
提供房源街道區(qū)域的戶型價(jià)格?勢(shì),?便?戶了解市場(chǎng)?情

4.1 第?步 前端發(fā)送請(qǐng)求

// 獲取broken_line $.ajax({url: "/get/brokenlinedata/{{ house.block }}",type: 'get',dataType: 'json',success: function (data) {broken_line_chart(data['data'])} });

4.2 第?步 數(shù)據(jù)選擇、處理變換和返回?cái)?shù)據(jù)

# 實(shí)現(xiàn)戶型價(jià)格走勢(shì) """ 1. 創(chuàng)建一個(gè)視圖函數(shù) /get/brokenlinedata/<block> get請(qǐng)求方式 2. 獲取block字段 使用sqlalchemy獲取符合block字段 和 戶型的房源數(shù)據(jù) --- 目標(biāo)數(shù)據(jù) 3. 預(yù)處理 對(duì)目標(biāo)數(shù)據(jù) 進(jìn)行分組 分組的依據(jù)是房源的發(fā)布時(shí)間 使用func函數(shù)中avg()獲取 price/area價(jià)格 按照發(fā)布時(shí)間來(lái)進(jìn)行排序 默認(rèn)方式進(jìn)行排序 --- 預(yù)處理的結(jié)果 4. 對(duì)預(yù)處理的結(jié)果 進(jìn)行變換 的到 提供給echarts的數(shù)據(jù) {'data':{'1室1廳':[76.49, 42.86]}} """ @detail_page.route('/get/brokenlinedata/<block>') def return_brokenline_data(block):# 1室1廳的戶型result = House.query.with_entities(func.avg(House.price / House.area)).filter(House.block == block,House.rooms == '1室1廳').group_by(House.publish_time).order_by(House.publish_time).all()data = []for i in result[-14:]:data.append(round(i[0], 2))# 2室1廳的戶型result1 = House.query.with_entities(func.avg(House.price / House.area)).filter(House.block == block,House.rooms == '2室1廳').group_by(House.publish_time).order_by(House.publish_time).all()data1 = []for i in result1[-14:]:data1.append(round(i[0], 2))# 2室2廳的戶型result2 = House.query.with_entities(func.avg(House.price / House.area)).filter(House.block == block,House.rooms == '2室2廳').group_by(House.publish_time).order_by(House.publish_time).all()data2 = []for i in result2[-14:]:data2.append(round(i[0], 2))# 3室2廳的戶型result3 = House.query.with_entities(func.avg(House.price / House.area)).filter(House.block == block,House.rooms == '3室2廳').group_by(House.publish_time).order_by(House.publish_time).all()data3 = []for i in result3[-14:]:data3.append(round(i[0], 2))return jsonify({'data': {'1室1廳': data, '2室1廳': data1, '2室2廳': data2, '3室2廳': data3}})

4.3 第三步 渲染-數(shù)據(jù)展示

function broken_line_chart(data) {var salaru_line = echarts.init(document.getElementById('broken_line'), 'infographic');window.addEventListener('resize', function () {salaru_line.resize();});// data ==> {'3室2廳': [26, 28, 42, 26, 22, 28, 22, 26, 32, 17, 22], '2室1廳': [25, 28, 27, 40, 33, 29, 28, 37, 30, 28, 32], '2室2廳': [37, 37, 36, 47, 34, 32, 32, 37, 36, 29, 31], '1室1廳': [35, 47, 44, 47, 44, 44, 31, 32, 34, 34, 34]}var Data1 = data['3室2廳'];var Data2 = data['2室2廳'];var Data3 = data['2室1廳'];var Data4 = data['1室1廳'];var date_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14];var option = {tooltip: {trigger: 'axis',},grid: {containLabel: true,left: '3%',right: '4%',bottom: '3%',},xAxis: {type: 'category',boundaryGap: false,data: date_list},yAxis: {type: 'value'},series: [{name:'3室2廳',type:'line',data:Data1},{name:'2室2廳',type:'line',data:Data2},{name:'2室1廳',type:'line',data:Data3},{name:'1室1廳',type:'line',data:Data4}] };salaru_line.setOption(option, true); }

預(yù)測(cè)房?jī)r(jià)

1. 后端接?設(shè)計(jì)

接?描述 接?參數(shù)
請(qǐng)求?? 詳情?-所在區(qū)域內(nèi)房?jī)r(jià)預(yù)測(cè)
請(qǐng)求?式 GET
請(qǐng)求地址 /get/scatterdata/
返回?cái)?shù)據(jù) json數(shù)據(jù)格式
圖表類型 散點(diǎn)圖

{'data': [[0, 85], [1, 110], [2, 105], [3, 87], [4, 84], [5, 86], [6, 74], [7, 67], [8, 91], [9, 76], [10, 63], [11, 68], [12, 80], [13, 93], [14, 115], [15, 72], [16 , 81], [17, 88], [18, 121], [19, 91], [20, 78], [21, 91], [22, 155], [23, 180], [24 , 84], [25, 199], [26, 98], [27, 104], [28, 108], [29, 125], [30, 91], [31, 76], [32 , 78], [33, 74], [34, 102], [35, 112], [36, 88], [37, 67], [38, 124], [39, 90], [40 , 112], [41, 90], [42, 106]]}

參數(shù) 類型 說(shuō)明
data 數(shù)組列表 數(shù)組[X,Y]。X為時(shí)間,Y為單價(jià)。

2. 效果展示


功能的作?:
先獲取房源所處街道附近的所有房源價(jià)格,然后根據(jù)時(shí)間統(tǒng)計(jì)每?的平均價(jià)格(租?/?積)
功能的?途:
提供房源街道區(qū)域的價(jià)格?勢(shì),?便?戶了解市場(chǎng)?情

4.1 第?步 前端發(fā)送請(qǐng)求

// 獲取scatter$.ajax({url: "/get/scatterdata/{{ house.block }}",type: 'get',dataType: 'json',success: function (data) {getdata1(data['data']);}});

3.2 第?步 數(shù)據(jù)選擇、處理、變換和返回?cái)?shù)據(jù)

# 實(shí)現(xiàn)房?jī)r(jià)預(yù)測(cè)功能 """ 1. 創(chuàng)建一個(gè)視圖函數(shù) /get/scaterdata/<block> get請(qǐng)求方式 2. 獲取block字段 然后使用sqlalchemy獲取符合blocl字段的所有房源 --- 目標(biāo)數(shù)據(jù) 3. 預(yù)處理 對(duì)目標(biāo)數(shù)據(jù)進(jìn)行分組 分組的依據(jù)就是房源的發(fā)布時(shí)間 使用func中avg()獲取 price/area價(jià)格 按照發(fā)布時(shí)間進(jìn)行排序 --- 預(yù)處理的結(jié)果 4. 對(duì)預(yù)處理的結(jié)果進(jìn)行變換 得到能夠提交給echarts的數(shù)據(jù)格式 {'data':[[0,50],[1,16.87],[2,76.49]]} """ @detail_page.route('/get/scatterdata/<block>') def return_scatter_data(block):# 1. 實(shí)現(xiàn)已有數(shù)據(jù)的渲染result = House.query.with_entities(func.avg(House.price / House.area)).filter(House.block == block).group_by(House.publish_time).order_by(House.publish_time).all()data = []X = []Y = []for index, i in enumerate(result):X.append([index])Y.append(round(i[0], 2))data.append([index, round(i[0], 2)]) # round函數(shù) 可以完成浮點(diǎn)數(shù)的四舍五入的運(yùn)算 傳入兩個(gè)參數(shù) 第一參數(shù):浮點(diǎn)數(shù) 第二參數(shù):保留的小數(shù)位# 2. 對(duì)未來(lái)一天(第二天)的價(jià)格進(jìn)行預(yù)測(cè)predict_value = len(data)predict_outcome = linear_model_main(X, Y, predict_value)print(predict_outcome)p_outcome = round(predict_outcome[0], 2)# 3. 將預(yù)測(cè)的數(shù)據(jù)添加入data中data.append([predict_value, p_outcome])return jsonify({'data': data})

4. 渲染-數(shù)據(jù)展示

function getdata1(data) {var center1 = echarts.init(document.getElementById('f_line'), 'infographic');window.addEventListener('resize', function () {center1.resize();});var myRegression = ecStat.regression('linear', data);myRegression.points.sort(function (a, b) {return a[0] - b[0];});option = {title: {subtext: '根據(jù)最近的房?jī)r(jià),預(yù)測(cè)價(jià)格走勢(shì)',left: 'center',},tooltip: {trigger: 'axis',axisPointer: {type: 'cross'}},grid: {show: true,//是否顯示直角坐標(biāo)系的網(wǎng)格,true顯示,false不顯示left: '13%',//grid組件離容器左側(cè)的距離containLabel: false,//grid 區(qū)域是否包含坐標(biāo)軸的刻度標(biāo)簽,在無(wú)法確定坐標(biāo)軸標(biāo)簽的寬度,容器有比較小無(wú)法預(yù)留較多空間的時(shí)候,可以設(shè)為 true 防止標(biāo)簽溢出容器。},xAxis: {type: 'value',height: '100px',splitLine: {lineStyle: {type: 'dashed'}},},yAxis: {type: 'value',min: 1.5,splitLine: {lineStyle: {type: 'dashed'}},},series: [{name: '分散值(實(shí)際值)',type: 'scatter',label: {emphasis: {show: true,position: 'left',textStyle: {color: 'blue',fontSize: 12}}},data: data}, {name: '線性值(預(yù)測(cè)值)',type: 'line',showSymbol: false,data: myRegression.points,markPoint: {itemStyle: {normal: {color: 'transparent'}},label: {normal: {show: true,position: 'left',formatter: myRegression.expression,textStyle: {color: '#333',fontSize: 12}}},data: [{coord: myRegression.points[myRegression.points.length - 1]}]}}]};center1.setOption(option, true);}

協(xié)同過(guò)濾算法

1. 協(xié)同過(guò)濾算法

通過(guò)尋找與??興趣、?為相似的對(duì)象 使?他們以往的數(shù)據(jù) ,來(lái)給??推薦??想要的東?。

2. 協(xié)同過(guò)濾算法的分類

2.1 基于物品的協(xié)同算法

2.2 基于?戶的協(xié)同算法

3. 本項(xiàng)?使?基于?戶的協(xié)同過(guò)濾算法

4. 使??爾遜相關(guān)系數(shù)做推薦

4.2 實(shí)現(xiàn)pearson推薦算法

from utils.con_to_db import query_data from math import sqrt# 獲取推薦表中所有的用戶id """ 1. 創(chuàng)建一個(gè)函數(shù) 2. 獲取推薦表中的所有用戶瀏覽的信息, 根據(jù)用戶id進(jìn)行分類 ,獲取所有的用戶的id 3. 對(duì)獲取到的結(jié)果進(jìn)行變形 """ def get_total_u_id():# 用來(lái)獲取推薦表中 所有的用戶idsql = 'select user_id from tuijian group by user_id'result = query_data(sql)# print(result)# 將所有的用戶id放入到一個(gè)列表中total_u_id = list([i[0] for i in result])# print(total_u_id)return total_u_id# 獲取每個(gè)用戶的歷史記錄的需求 """ 1. 創(chuàng)建一個(gè)函數(shù) 2. 通過(guò)user_id這個(gè)字段 來(lái)過(guò)濾出當(dāng)前用戶的所有的瀏覽歷史 從當(dāng)前的這組數(shù)據(jù)中 獲取house_id 和 score 3. 對(duì)獲取到的數(shù)據(jù) 進(jìn)行組裝 {1: {123:4, 234:2} } ==> {u_id: {house_id: score, house_id:score.....}} """ def get_user_info(user_id):# 使用sql語(yǔ)句完成數(shù)據(jù)庫(kù)的查詢sql = 'select user_id, house_id, score from tuijian where user_id = "{}"'.format(user_id)result = query_data(sql)# print(result)data = {}for info in result:# data字典中 還沒(méi)有插入過(guò)當(dāng)前用戶的信息的操作if info[0] not in data.keys():data[info[0]] = {info[1]: info[2]}else:data[info[0]][info[1]] = info[2]# print(data)return data# 獲取兩個(gè)用戶的相似度 """ 1. 創(chuàng)建一個(gè)函數(shù) 2. 獲取兩個(gè)用戶的 各自的瀏覽記錄 3. 后去兩個(gè)用戶共同的瀏覽過(guò)的房源 4. 使用pearson公式 來(lái)獲取他們的相似度 """def pearson_sim(user1, sim_user):# 獲取兩個(gè)用戶的 各自的瀏覽記錄user1_data = get_user_info(user1)[int(user1)]user2_data = get_user_info(sim_user)[int(sim_user)]# 兩個(gè)用戶共同的瀏覽過(guò)的房源common = []for key in user1_data.keys(): # keys函數(shù)使用來(lái)獲取字典中 所有的鍵 返回的是盛放鍵的列表if key in user2_data.keys():common.append(key)# 如果沒(méi)有共同評(píng)論過(guò)的房源 就返回0if len(common) == 0:return 0# 統(tǒng)計(jì)相同房源的個(gè)數(shù)n = len(common)# print(n, common)# 計(jì)算評(píng)分和 Ex和Eyuser1_sum = sum([user1_data[hid] for hid in common])user2_sum = sum([user2_data[hid] for hid in common])# 計(jì)算評(píng)分的平方和 E(x)^2 E(y)^2pow_sum1 = sum([pow(user1_data[hid], 2) for hid in common])pow_sum2 = sum([pow(user2_data[hid], 2) for hid in common])# 計(jì)算乘積的和PSum = sum([float(user1_data[hid] * float(user2_data[hid])) for hid in common])# 組裝成分子fenzi = PSum - (user1_sum * user2_sum / n)# 組裝分母fenmu = sqrt(pow_sum1 - pow(user1_sum, 2) / n) * (pow_sum2 - pow(user2_sum, 2) / n)if fenmu == 0:return 0result = fenzi / fenmu# print(result)return result# 獲取相似度在前十名的用戶 """ 1. 創(chuàng)建一個(gè)函數(shù) 2. 獲取推薦表中的全部的用戶的id 3. 遍歷全部用戶的id 獲取除自己之外的所有用戶的 相似度 4. 使用sort函數(shù)來(lái)進(jìn)行降序排序 獲取前十名的用戶id """def top10_similar(UserID):# 獲取推薦表中的全部的用戶的idtotal_u_id = get_total_u_id()# 遍歷全部用戶的id 獲取除自己之外的所有用戶的 相似度res = []for u_id in total_u_id:if int(UserID) != u_id:similar = pearson_sim(int(UserID), int(u_id))if similar > 0:res.append((u_id, similar))# print(res)# 使用sort函數(shù)來(lái)進(jìn)行降序排序 獲取前十名的用戶idres.sort(key=lambda val: val[1], reverse=True)# sort函數(shù)可以對(duì)列表進(jìn)行排序 默認(rèn)使用升序方式排序 使用reverse改為降序排序# print(res[:10])return res# 獲取推薦的房源 """ 1. 創(chuàng)建一個(gè)函數(shù) 2. 獲取相似度最高的用戶 通過(guò)這個(gè)用戶 獲取他完整的 瀏覽記錄 3. 獲取當(dāng)前這個(gè)用戶的 完整瀏覽記錄 4. 判斷 當(dāng)前用戶中沒(méi)有 但是在 相似用戶中 評(píng)價(jià)最高的房源 5. 按照 評(píng)分 使用sort來(lái)進(jìn)行排序 降序排序 獲取前6個(gè) """def recommed(user):# 判斷獲取到的top10_similar()函數(shù)的結(jié)果 是否有值,如果沒(méi)有值 返回Noneif len(top10_similar(user)) == 0:return None# 獲取相似度最高的用戶idtop_sim_user = top10_similar(user)[0][0]# 獲取相似度最高的用戶 的完整瀏覽記錄items = get_user_info(top_sim_user)[int(top_sim_user)] # {1: {123:4, 234:2}}# 獲取當(dāng)前用戶自己的瀏覽記錄user_data = get_user_info(user)[int(user)]# 篩選當(dāng)前用戶 未瀏覽的房源 并添加到列表中recommendata = []for item in items.keys():if item not in user_data.keys():recommendata.append((item, items[item]))# print(recommendata)recommendata.sort(key=lambda val: val[1], reverse=True)# print(recommendata)# 返回評(píng)分最高的6套房源if len(recommendata) > 6:return recommendata[:6]else:return recommendataif __name__ == '__main__':# get_total_u_id()# get_user_info(1)# pearson_sim(1, 23)# top10_similar(3)recommendata= recommed(1)print(recommendata)

智能推薦

1. 后端邏輯

智能推薦的邏輯應(yīng)該在詳情?detail視圖函數(shù)的中實(shí)現(xiàn)。?在實(shí)現(xiàn)的時(shí)候,我們需要分登陸狀態(tài)和?登錄狀態(tài)兩種情況來(lái)進(jìn)?討論,詳細(xì)的邏輯如下圖所示:

# 實(shí)現(xiàn)房源的基本信息展示 """ 1. 創(chuàng)建一個(gè)視圖函數(shù) 動(dòng)態(tài)路由 /house/<int:hid> method=get 2. 使用房源編號(hào) 通過(guò)sqlalchemy獲取編號(hào)對(duì)應(yīng)的房源對(duì)象 就可以獲取對(duì)象中的信息了 3. 使用render_template進(jìn)行模板的渲染 """ @detail_page.route('/house/<int:hid>') def detail(hid):house = House.query.get(hid)sheshi_str = house.sheshi # 床-寬帶-洗衣機(jī)-空調(diào)-熱水器-暖氣sheshi_list = sheshi_str.split('-')# 判斷用戶是否處于登錄狀態(tài)下name = request.cookies.get('name')# 定義一個(gè)用來(lái)盛放推薦房源的列表容器tuijian = []# 在登陸狀態(tài)下if name:# 獲取用戶對(duì)象user = User.query.filter(User.name == name).first()# 獲取用戶對(duì)象的瀏覽記錄seen_id_str = user.seen_id # 瀏覽記錄的格式:'123,234,345' 或著 null# 已經(jīng)存在的瀏覽記錄if seen_id_str:# 對(duì)瀏覽記錄進(jìn)行變形 將字符串 轉(zhuǎn)換成 列表 '123,234,345' ==> ['123','234','345']seen_id_list = seen_id_str.split(',')# 將列表轉(zhuǎn)換成 元素為整數(shù)的列表 ['123','234','345'] ==> [123, 234, 345]# 借助set函數(shù) 來(lái)去重set_id = set([int(i) for i in seen_id_list]) # [123, 234, 345] ==> {123, 234,345}# 如果hid在瀏覽記錄中if hid in set_id:pass# 如果hid不在瀏覽記錄中else:new_seen_id_str = seen_id_str + ',' + str(hid)user.seen_id = new_seen_id_strdb.session.commit()# 瀏覽記錄為nullelse:# 直接將當(dāng)前的hid插入到瀏覽記錄中user.seen_id = str(hid)db.session.commit()# TODO 實(shí)現(xiàn)推薦功能# 添加用戶的瀏覽次數(shù)# 查詢 tuijian表中是否有當(dāng)前用戶 對(duì)此房源的瀏覽記錄info = Tuijian.query.filter(Tuijian.user_id==user.id, Tuijian.house_id==house.id).first()# 第一種情況,該用戶對(duì)此房源已經(jīng)瀏覽過(guò)了,就對(duì)推薦表中score進(jìn)行加一if info:print('推薦表中已經(jīng)存在<user:{}>對(duì)<house:{}>的瀏覽記錄'.format(user.id, house.id))new_score = info.score + 1info.score = new_scoredb.session.commit()print('完成:對(duì)<user:{}><house:{}>瀏覽記錄+1的操作'.format(user.id, house.id))# 第二種情況,該用戶對(duì)此房源沒(méi)有瀏覽過(guò),直接插入一條新的數(shù)據(jù)else:new_info = Tuijian(user_id=user.id, house_id=house.id, title=house.title, address=house.address, block=house.block, score=1)db.session.add(new_info)db.session.commit()print('推薦表中不存在<user:{}>對(duì)<house:{}>的瀏覽記錄,因此添加一條新的信息到推薦表中'.format(user.id, house.id))# 根據(jù)推薦系統(tǒng)的返回值,給用戶返回推薦結(jié)果# 調(diào)用推薦系統(tǒng)的recommed函數(shù)result = recommed(user.id)# 第一種情況,有推薦的返回值,就代表有推薦房源,此時(shí)返回推薦房源給用戶if result:print('-----使用推薦系統(tǒng),獲取推薦房源給用戶-----')for tuijian_hid, tuijian_num in result:tuijian_house = House.query.get(int(tuijian_hid))tuijian.append(tuijian_house)# 第二種情況,沒(méi)有推薦的返回值,代表推薦房源為空列表,此時(shí)返回同小區(qū)的房源給用戶else:print('-----使用普通推薦系統(tǒng),獲取同小區(qū)的房源給用戶-----')putong_tuijian = House.query.filter(House.address==house.address).order_by(House.liulanliang.desc()).all()if len(putong_tuijian) > 6:tuijian = putong_tuijian[:6]else:tuijian = putong_tuijian# 沒(méi)有在登陸狀態(tài)下else:print('-----使用普通推薦系統(tǒng),獲取同小區(qū)的房源給用戶-----')putong_tuijian = House.query.filter(House.address == house.address).order_by(House.liulanliang.desc()).all()if len(putong_tuijian) > 6:tuijian = putong_tuijian[:6]else:tuijian = putong_tuijianreturn render_template('detail_page.html', house=house, sheshi=sheshi_list, tuijian=tuijian)

源代碼

鏈接:https://pan.baidu.com/s/1oBlP7B52Kp9mcqoIeHLX7Q
提取碼:yovx
復(fù)制這段內(nèi)容后打開(kāi)百度網(wǎng)盤手機(jī)App,操作更方便哦

總結(jié)

以上是生活随笔為你收集整理的python flask智能租房项目——详情页的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

中文字幕乱码一区二区 | 伊人天堂av | 欧美性受极品xxxx喷水 | 亚洲免费激情 | 天天操天天操 | av电影在线观看完整版一区二区 | 国产美女视频网站 | 黄色片免费在线 | 国产在线观看网站 | 久久精品亚洲一区二区三区观看模式 | a在线播放 | 亚洲精品乱码久久久久久蜜桃动漫 | 免费av的网站 | 日韩激情影院 | 日韩成人精品 | av在线免费观看网站 | 日日夜夜草 | 手机在线看片日韩 | 精品久久久久久久久久久院品网 | 免费高清在线视频一区· | 黄色字幕网 | 久久久久久久久久久国产精品 | 天天操天天舔天天干 | 91久久国产露脸精品国产闺蜜 | 日韩一区二区三区观看 | 一区二区三区日韩在线 | 亚洲精品动漫久久久久 | 中文字幕一区二区三区乱码不卡 | 丁香六月av | 九九久久在线看 | 蜜臀久久99精品久久久无需会员 | 国产精品av免费在线观看 | 91精品视频免费观看 | 国产高清在线免费 | 国产啊v在线观看 | 国产精品福利在线观看 | 成人av在线播放网站 | 国产亚洲精品成人av久久ww | 日韩在线大片 | 日韩精品一区二区三区视频播放 | 亚洲精品白浆高清久久久久久 | 视频一区二区在线观看 | 国产免费中文字幕 | 精品久久久久久久久久久院品网 | 天天综合网天天 | 久久国色夜色精品国产 | 国产精品久久久久久久久久久久午夜 | 国产字幕在线播放 | 久久久久成人精品免费播放动漫 | 国产视频在线观看一区 | 亚洲乱亚洲乱亚洲 | 国产糖心vlog在线观看 | 国产精品二区在线 | 一区 二区电影免费在线观看 | 免费观看日韩 | 日韩亚洲国产中文字幕 | av大全免费在线观看 | 日韩和的一区二在线 | 欧美成年网站 | 国产在线观看免费观看 | 91免费视频网站在线观看 | 99在线精品观看 | 99 国产精品 | 久久精品91久久久久久再现 | 中文字幕视频观看 | 在线国产高清 | 国产乱对白刺激视频不卡 | 在线精品视频在线观看高清 | 性色av香蕉一区二区 | 国产无套视频 | 中文字幕日本在线 | freejavvideo日本免费 | 日本久久免费电影 | 国产精品热 | 欧美老人xxxx18 | 日韩一区二区免费在线观看 | 久久国产网站 | 91av免费看| 久久久久久久久黄色 | 99视频这里只有 | 精品免费观看视频 | 五月开心六月伊人色婷婷 | www.久久久精品 | 超碰在线色 | 久久久久草 | 麻豆传媒在线免费看 | 久久久久久久久影视 | 国产成人三级一区二区在线观看一 | 日韩欧美观看 | 亚洲手机av | 成人aaa毛片 | 狠狠色丁香九九婷婷综合五月 | 91成熟丰满女人少妇 | 在线观看中文字幕dvd播放 | 天天爱天天射 | 亚洲国产wwwccc36天堂 | 免费看一级特黄a大片 | 欧美日韩在线观看一区 | se视频网址| 精品国产人成亚洲区 | 欧美另类xxxxx | 国产精品久久久久久久久岛 | 日本黄色黄网站 | 一本一道久久a久久精品蜜桃 | 香蕉网在线 | 久久免费高清视频 | 免费av在线播放 | 麻豆影视在线播放 | 狠狠色丁香久久婷婷综合丁香 | 三级视频片| 91在线视频在线 | 精品96久久久久久中文字幕无 | av夜夜操 | 一区二区三区免费在线观看视频 | 国产青青青 | 精品美女视频 | 亚洲成人av影片 | 午夜精选视频 | 天天操天 | 国产亚洲精品久久久久久网站 | 欧美日韩国产在线观看 | 国产精品一区久久久久 | 亚洲成av人影片在线观看 | 亚洲精品看片 | 免费试看一区 | 不卡电影免费在线播放一区 | 日韩性片 | 亚洲精品乱码久久久久久 | 久久免费视频一区 | 天天干中文字幕 | 天天玩天天操天天射 | 日韩在线 | 美女露久久 | 狠狠色2019综合网 | 91成人免费观看视频 | 麻豆视频免费在线观看 | 去看片 | 91麻豆精品国产91久久久使用方法 | 国产成人精品亚洲精品 | 国产亚洲婷婷免费 | 中文字幕在线免费97 | 2022国产精品视频 | 麻豆成人精品视频 | 日日夜夜网| 久久精品国产免费看久久精品 | 国产成人在线免费观看 | 国产91精品看黄网站 | 免费观看性生活大片3 | 丁香av| 国产精品一区在线观看你懂的 | 国产精品一区二区三区在线免费观看 | 综合在线观看色 | 激情五月婷婷综合 | 久久久久免费精品国产小说色大师 | 天天射天天射天天 | 不卡视频在线看 | 99精品免费久久久久久久久 | 免费看的国产视频网站 | 国产一卡二卡四卡国 | 国产精品久久久久久久久久新婚 | 欧美黄污视频 | 国产护士hd高朝护士1 | 99久久婷婷国产综合亚洲 | 97色se| 成人av.com | 国产精品免费久久久久影院仙踪林 | 日本中文字幕观看 | 91精品国产福利在线观看 | 精品特级毛片 | 911久久| www.久久久 | 欧美一区二区三区免费看 | 亚洲一区二区三区精品在线观看 | 久草在线视频国产 | 免费日韩一区二区 | 97自拍超碰| 国产精品国产亚洲精品看不卡 | 色成人亚洲网 | 人交video另类hd | 在线免费91 | 六月丁香激情综合 | 国产毛片久久 | 日韩欧美专区 | 国产xxxx做受性欧美88 | 久久夜色电影 | 久久久久久久久福利 | 久久草草热国产精品直播 | 亚洲午夜av电影 | 91麻豆精品国产91久久久无限制版 | 国产日韩精品在线 | 欧美日韩xxx | 最近字幕在线观看第一季 | 五月天亚洲综合 | 亚洲h在线播放在线观看h | 五月婷久久 | 国产夫妻av在线 | 久久99精品国产麻豆宅宅 | 亚洲天堂网在线观看视频 | 一区二区三区在线免费播放 | 亚洲精品乱码久久久一二三 | 天天射天天操天天干 | 国产精品扒开做爽爽的视频 | 日韩免费视频播放 | 99精品免费 | 91传媒在线观看 | 日本论理电影 | www久| 日韩av电影中文字幕在线观看 | avav片 | 天天操天天操天天操 | 免费日韩 精品中文字幕视频在线 | 日日摸日日添夜夜爽97 | 亚洲黄色a| 在线观看精品黄av片免费 | 激情黄色一级片 | 久章操| 久久综合色影院 | 在线免费观看欧美日韩 | 色欧美视频 | 国产精品一区二区在线观看免费 | 黄色软件网站在线观看 | 中文字幕在线一区二区三区 | 国产午夜精品视频 | 91手机视频 | 在线观看av国产 | 国产精品久久久精品 | 在线探花 | 深爱激情站 | 日日干天天爽 | 亚洲v欧美v国产v在线观看 | 日韩精品视频在线观看免费 | 成人在线观看你懂的 | 成人午夜电影网站 | 看全黄大色黄大片 | 久久综合久久综合九色 | 国产在线va | 五月婷丁香网 | 欧美夫妻性生活电影 | av天天在线观看 | 97色婷婷成人综合在线观看 | 亚洲免费不卡 | 久操免费视频 | 色婷婷国产在线 | 天天射天天爱天天干 | 91成人精品国产刺激国语对白 | 久久免费精彩视频 | 国产 日韩 欧美 自拍 | 午夜视频在线观看一区二区三区 | 激情欧美一区二区三区 | 免费av试看 | 在线观看av中文字幕 | 久久综合狠狠综合 | 69亚洲乱 | 香蕉网在线播放 | 亚洲精品视频网址 | 色操插| 中文字幕在线观 | 波多野结依在线观看 | av成人在线观看 | 久久精品日本啪啪涩涩 | 啪啪精品| 色先锋资源网 | 青青草国产精品视频 | 精品一二三四在线 | 丝袜av网站 | 91激情视频在线观看 | 91九色网站 | 日韩一区视频在线 | 久久草网| 一区二区三区高清 | 欧美精品首页 | 麻豆免费在线视频 | 99在线热播精品免费 | 日本爱爱片 | 狠狠狠色丁香综合久久天下网 | 免费一级片视频 | 中文字幕在线观看完整版电影 | 欧美一级特黄高清视频 | 人人射人人爱 | 亚洲毛片视频 | 国产精品久久久久久久av大片 | 日本h在线播放 | www.天天草| 五月天综合网站 | 欧美日韩久久不卡 | 97在线免费视频观看 | 射九九| 久久资源在线 | 人人爱爱 | 久久99电影| 日本久久成人中文字幕电影 | 国产亚洲在线视频 | 日韩电影精品一区 | 免费男女羞羞的视频网站中文字幕 | www.色爱| 国产亚洲久一区二区 | 亚洲乱码精品久久久久 | 久久精品1区 | av动图| 丝袜美腿一区 | 一区二区三区免费在线观看视频 | 免费在线观看午夜视频 | 国产91电影在线观看 | 人人澡人人草 | 亚洲精品黄色在线观看 | 婷婷开心久久网 | 激情五月在线视频 | 国产视频网站在线观看 | 国产91精品看黄网站 | 国产精品一区二区三区电影 | 91亚洲网| 精品美女在线视频 | 成人午夜电影久久影院 | 视频一区在线免费观看 | 美女很黄免费网站 | 中文字幕在线观看的网站 | 911免费视频 | 国产伦理久久 | 久久久黄视频 | 九九九九热精品免费视频点播观看 | 97麻豆视频| 三上悠亚在线免费 | 国产精品久久久 | 伊人久久一区 | 国产精品小视频网站 | av在线成人 | 91超级碰| 久久a v电影 | 日本精品在线视频 | 91视频com| 久久麻豆视频 | 欧美成年性 | 在线观看爱爱视频 | 国产.精品.日韩.另类.中文.在线.播放 | 中文字幕第一页在线 | 在线日本看片免费人成视久网 | av+在线播放在线播放 | 亚洲乱码精品久久久 | 在线直播av| 精品国产欧美一区二区 | 国产精品美女久久久 | 色综久久 | 国产日韩欧美在线看 | 国精产品999国精产 久久久久 | 免费在线国产 | 中文字幕成人在线观看 | 一区二区三区四区五区在线 | 成人av在线影视 | 国产一级黄色片免费看 | 国产精品伦一区二区三区视频 | 亚洲精品视频网站在线观看 | 久青草国产在线 | 亚洲播播 | 激情影音先锋 | 激情视频在线观看网址 | 日韩天天综合 | 久久久免费视频播放 | 91桃色免费视频 | 麻豆91精品视频 | 91免费看片黄 | 最近免费中文字幕 | 亚洲视频一区二区三区在线观看 | 天天爽天天爽天天爽 | 久久久久久久久电影 | 在线看片中文字幕 | 国产电影黄色av | 一区二区不卡在线观看 | 国产精品视屏 | 欧美视频不卡 | 在线观看aaa | 色五月成人 | 91香蕉视频好色先生 | 国产成人一区二区啪在线观看 | 香蕉久久国产 | av不卡免费在线观看 | 国产成人福利片 | 成人久久18免费网站麻豆 | 91精品国产综合久久婷婷香蕉 | 狠狠躁日日躁狂躁夜夜躁av | 久久午夜色播影院免费高清 | 日韩天天干 | 欧美 日韩 国产 中文字幕 | 欧美va天堂va视频va在线 | 成年人免费av | 国产精品成人在线观看 | 欧美一级免费片 | 日日摸日日添日日躁av | 视频国产精品 | 欧美日韩精品免费观看视频 | 日韩中文字幕免费看 | 色天天综合网 | 亚洲国产中文在线观看 | 日韩视频在线不卡 | 国产高清一区二区 | 欧美韩日精品 | 99精品网站 | 青草视频在线 | 成人中文字幕av | 免费观看完整版无人区 | 97色国产 | 奇米777777 | 国产这里只有精品 | 国产一区二区不卡视频 | 91在线看片 | 四虎在线免费观看 | 激情久久婷婷 | 免费在线观看中文字幕 | 婷婷综合导航 | 最新国产一区二区三区 | 免费在线观看av的网站 | 69精品久久久 | 在线观看成人一级片 | 久久新视频 | 成人aⅴ视频 | 免费色网 | 蜜桃视频在线观看一区 | 国产麻豆精品一区 | 国产拍揄自揄精品视频麻豆 | 中文字幕视频网站 | 久久国产精品成人免费浪潮 | www国产亚洲精品久久网站 | 美女网站在线播放 | 香蕉色综合 | 婷婷成人亚洲综合国产xv88 | 日韩欧美在线第一页 | 狠狠躁日日躁狂躁夜夜躁av | av中文字幕在线电影 | 992tv人人网tv亚洲精品 | 三三级黄色片之日韩 | 天天久久夜夜 | 色香com. | 91亚洲精品乱码久久久久久蜜桃 | 亚洲夜夜网| 日日夜夜添 | 久久这里只有精品9 | 久久精品91久久久久久再现 | 国产香蕉久久 | 国产在线观看地址 | 韩国在线一区二区 | 美女精品网站 | 国产精品一区二区在线免费观看 | www久草| 亚洲最新视频在线播放 | 91免费试看 | 国产在线观看a | 日韩av福利在线 | 亚洲精品乱码久久 | 亚洲乱码久久久 | 久久久久久久久久电影 | 国产毛片aaa | 综合网五月天 | 激情综合六月 | 国产一级精品视频 | 国产999视频在线观看 | 国产黑丝一区二区 | 97综合在线 | 日本韩国精品在线 | 国产高清久久久久 | 国产特级毛片aaaaaa毛片 | 免费在线观看av网址 | 一区二区视频在线播放 | 色在线高清 | 999久久久欧美日韩黑人 | 久久99国产一区二区三区 | 88av网站| 亚洲精品2区 | 国产一级视频在线观看 | 99精品国产兔费观看久久99 | 黄色午夜| 综合精品在线 | av成人动漫在线观看 | www免费黄色 | 久久夜色精品国产欧美乱极品 | 狠狠干婷婷 | 2019国产精品 | 久久久久精| 国产精品久久二区 | 国产录像在线观看 | 波多野结衣一区三区 | 午夜三级福利 | 免费看短| 亚洲日本va中文字幕 | 成人影视免费看 | 91精品国自产在线观看欧美 | 色偷偷人人澡久久超碰69 | 国产一区二区三区高清播放 | 亚洲精品自在在线观看 | 黄色片网站av | 久久草在线精品 | 精品国产一区二区三区四 | 四虎影视成人永久免费观看视频 | 国产 字幕 制服 中文 在线 | 91久久国产综合精品女同国语 | 免费av在线网 | 婷婷在线免费 | 亚州精品国产 | www.香蕉 | 国产黄色av影视 | 久久爱www. | 欧美色插 | 激情网站| 六月激情 | 人人草天天草 | www.国产视频 | 97超碰香蕉 | 精品91在线| 视频一区在线免费观看 | www.av免费 | 91大神精品视频 | 丁香色综合| 香蕉精品在线观看 | 日韩在线观看第一页 | 日韩视频一| 韩国av免费在线 | 天天射天天干天天爽 | 成人毛片一区 | 久久综合九九 | 久久综合久久综合九色 | 免费观看国产视频 | 国产成人三级三级三级97 | 亚洲三级精品 | 久久久久成人精品免费播放动漫 | 中文字幕乱偷在线 | 97精品国自产拍在线观看 | 久久精品网站免费观看 | 黄色天堂在线观看 | 99操视频 | 欧美精品免费视频 | 日韩一区精品 | 精选久久| 摸阴视频 | 成人亚洲欧美 | 欧美日本不卡高清 | 午夜精品久久久久久久99无限制 | 国产精品久久久久久影院 | 成人在线观看av | 久久成年人 | av韩国在线 | 特级xxxxx欧美 | 国产精品入口久久 | 日韩一区正在播放 | 久久久久久国产精品久久 | 色香天天 | www.香蕉视频| 九色精品免费永久在线 | 国产高清av在线播放 | 国产精品一区二区在线免费观看 | 亚洲五月婷婷 | 国产馆在线播放 | 亚洲精品久久久久久中文传媒 | 久久国产欧美日韩精品 | 91在线免费观看国产 | www.夜夜操.com | avav片 | 一区二区三区动漫 | 亚洲黄色成人av | 97成人精品视频在线观看 | 国产精品久久久久一区二区国产 | 亚洲三级精品 | 91精品视频在线看 | 丁香婷婷综合五月 | 日韩精品一区二区三区在线播放 | 一级理论片在线观看 | 在线亚洲人成电影网站色www | 69视频在线 | 97超碰人人干 | 精品日韩在线 | 久草在线观看资源 | 美女视频黄在线观看 | 激情视频一区二区三区 | 色资源中文字幕 | 婷婷中文字幕 | 粉嫩av一区二区三区四区在线观看 | 深爱五月网 | 91精品国产乱码 | 国产精品麻豆一区二区三区 | 日韩精品在线看 | 日本久久综合视频 | 久久久久久久福利 | 午夜色影院| 99热在线国产 | 一区二区视频在线播放 | 在线观看黄 | 色在线国产 | 免费看的毛片 | 国产视频每日更新 | 91精品国产91久久久久久三级 | 国产一区二区三区午夜 | 欧美日韩不卡在线观看 | 色综合久久88色综合天天免费 | 激情五月婷婷丁香 | www视频在线播放 | 欧美日韩在线精品一区二区 | 国产精品正在播放 | 成人av免费看 | 欧美91av| 久久人人爽视频 | 深夜成人av | av在线进入 | 美女黄色网在线播放 | 伊人婷婷| 九九综合久久 | 三级av免费 | 最新中文字幕 | 欧美福利视频一区 | 91一区二区三区在线观看 | 国产成人久久久久 | 国产精品久久久久一区 | 欧美乱码精品一区 | 中文字幕在线看视频国产中文版 | 91福利试看 | 久久综合综合久久综合 | 亚洲最新视频在线 | 久久久久久毛片精品免费不卡 | 免费看wwwwwwwwwww的视频 久久久久久99精品 91中文字幕视频 | 91麻豆精品国产91久久久使用方法 | 免费a现在观看 | 99国产情侣在线播放 | 国产裸体永久免费视频网站 | 超薄丝袜一二三区 | 久久亚洲在线 | 午夜体验区 | 久久激情视频免费观看 | 国产女做a爱免费视频 | 99re在线视频观看 | 麻豆视频国产在线观看 | 国产麻豆精品久久一二三 | 久久精品视频5 | 欧美精品免费一区二区 | 九九九九热精品免费视频点播观看 | 最新日韩视频 | 久久99精品国产一区二区三区 | 午夜久久成人 | 中文字幕第一页av | 成人av高清 | 在线91精品 | 去干成人网 | 中文字幕在线免费看 | 综合网中文字幕 | 久久国产热视频 | 欧美日产一区 | 久久国产午夜精品理论片最新版本 | 日韩欧美高清一区二区三区 | 欧洲亚洲女同hd | 成人三级av | 五月香视频在线观看 | 欧美专区亚洲专区 | 日韩在线首页 | 啪啪激情网 | 国产色在线观看 | 国产精品久久久久影院 | av一区二区三区在线播放 | 亚洲精品国产精品99久久 | 91香蕉视频在线下载 | 成人免费网站在线观看 | 亚洲一区美女视频在线观看免费 | 国产精品久久久久久久毛片 | 久久综合九色综合97婷婷女人 | 99久久精品日本一区二区免费 | 五月天色综合 | 免费在线电影网址大全 | a视频免费| 午夜国产一区 | 欧美一区成人 | 怡红院久久| 亚洲年轻女教师毛茸茸 | 一区二区三区中文字幕在线观看 | 国产一区在线免费观看视频 | 中文在线最新版天堂 | 中文字幕在线观看视频免费 | 国产精品99久久久久久武松影视 | 亚洲欧洲国产精品 | 欧美大片aaa | 久久免费精品视频 | 成人午夜黄色 | 精品久久久久久亚洲 | 日韩专区一区二区 | 色婷婷导航| 国产一级二级在线观看 | 日本mv大片欧洲mv大片 | 日韩免费在线观看视频 | 99麻豆久久久国产精品免费 | 99视频精品在线 | 中文字幕亚洲在线观看 | 亚洲一区二区三区毛片 | 日韩成年视频 | 干亚洲少妇 | 中文字幕国语官网在线视频 | 最新国产精品亚洲 | 亚洲爱视频| 国产精品网站 | 日韩精品中文字幕在线播放 | av免费在线观看网站 | 欧美午夜久久久 | 欧美精品三级在线观看 | 丁香视频全集免费观看 | 亚洲一级电影在线观看 | 91成人看片| 中文字幕电影高清在线观看 | 人人爽人人爽人人 | 色综合天天综合 | 国产69精品久久99的直播节目 | 日韩av在线看 | 午夜精品一区二区三区免费 | 黄色大片国产 | 国产在线超碰 | 国产无套一区二区三区久久 | 国产在线精品国自产拍影院 | 国产高清在线看 | 成人精品一区二区三区电影免费 | 天天摸日日摸人人看 | 亚洲精品网址在线观看 | 国产亚洲小视频 | 韩国在线视频一区 | 日韩激情视频在线 | 中文字幕亚洲情99在线 | 91黄视频在线 | 日日夜夜精品免费视频 | av电影不卡在线 | 97激情影院 | 狠狠躁日日躁夜夜躁av | 日韩午夜三级 | 日韩免费在线视频观看 | 97在线观看免费高清 | 日韩免费看片 | 99中文视频在线 | 久久久久亚洲精品 | 亚洲精品av在线 | 国产91精品一区二区绿帽 | 成人蜜桃视频 | 精品久久久久国产 | 久久精品视频在线观看 | 久操中文字幕在线观看 | 日韩极品视频在线观看 | 久久成人综合视频 | 久久香蕉国产精品麻豆粉嫩av | 久久精品国产精品亚洲 | av资源在线看 | 国产亚洲成av人片在线观看桃 | 久久免费精品视频 | 在线视频麻豆 | 色.www| 99高清视频有精品视频 | 色噜噜在线观看视频 | 国产成人一区二区三区免费看 | 天天操天天色天天射 | 99久久婷婷国产综合亚洲 | 人人爽人人爽人人爽学生一级 | 黄色一区三区 | 97精品电影院 | 天天操狠狠操夜夜操 | 视频一区视频二区在线观看 | 亚欧洲精品视频在线观看 | 婷婷丁香色综合狠狠色 | 99热精品国产一区二区在线观看 | 成人在线观看影院 | 国产精品观看在线亚洲人成网 | 久久精品看 | 成人久久18免费网站 | 一区二区三区不卡在线 | 久久九九国产精品 | 亚洲第一av在线播放 | 国产免费大片 | 又黄又爽又刺激 | 国产精品久久久久久a | 国产美女视频免费观看的网站 | 免费观看国产精品视频 | 国产无区一区二区三麻豆 | 久久免费公开视频 | 最新国产视频 | 精品女同一区二区三区在线观看 | 91精品久久久久久久99蜜桃 | 天堂av在线网站 | 国产精品午夜在线观看 | 国产精品久久久久久久久久尿 | 五月婷婷丁香六月 | 成人免费观看在线视频 | 亚洲精品在线免费 | 亚洲美女在线国产 | 日韩系列在线 | 午夜婷婷在线播放 | 天无日天天操天天干 | 亚洲欧美在线观看视频 | av在线官网| 97人人精品 | 国产流白浆高潮在线观看 | 成人黄色资源 | 色婷婷福利 | 中文字幕精 | 亚洲精品一区二区三区在线观看 | 视频一区二区三区视频 | 国产在线精品一区二区不卡了 | 奇米先锋 | 日本性xxx | 日本激情视频中文字幕 | 天天操天天干天天干 | 国产无遮挡又黄又爽馒头漫画 | 国产91精品看黄网站 | 日韩在线视频观看 | 亚洲成人在线免费 | 国产精品99久久久久久大便 | 91在线www| 亚洲综合精品在线 | 有码中文字幕在线观看 | 天天干天天天天 | 日韩在线观看第一页 | 99中文字幕在线观看 | 97在线视频免费播放 | 亚洲一级黄色 | 精品你懂的 | av官网在线 | 日韩激情视频在线观看 | 美女视频免费精品 | 亚洲精品一区二区三区新线路 | 亚洲视频专区在线 | 亚洲综合婷婷 | 亚洲成人免费观看 | 在线看欧美| 日韩在线观看你懂得 | 97超碰在线播放 | 欧美精品免费在线 | 亚洲午夜精品电影 | 国产一区二区三区免费视频 | 亚洲人成免费 | 人人看人人 | 久草在线手机观看 | 久久免费片 | 日韩精品视频在线观看免费 | 天天狠狠 | 亚洲免费资源 | 久久久福利视频 | 色噜噜在线观看 | 精品久久久久久国产偷窥 | 亚洲欧美国产日韩在线观看 | 欧美一级视频一区 | 精品日韩在线一区 | 天天插天天 | 精品国产黄色片 | 久草免费在线视频观看 | 日韩欧美高清不卡 | 中文字幕日本特黄aa毛片 | 国产视频在线一区二区 | 在线成人国产 | 日日操天天操夜夜操 | 在线观看亚洲国产 | 日韩二区三区 | 西西人体4444www高清视频 | 欧美一级在线观看视频 | 久久九九国产精品 | 欧美日韩aa | 91少妇精拍在线播放 | 久久国产午夜精品理论片最新版本 | 97视频免费看 | av中文字幕在线免费观看 | 国产精品免费麻豆入口 | 91在线91拍拍在线91 | 狠狠婷婷 | 色天天久久 | 黄污在线看 | 视频在线国产 | 成人黄色免费观看 | 久久精品久久久精品美女 | 免费观看午夜视频 | 四虎在线免费观看视频 | 国产黄在线观看 | 五月婷婷.com | 亚洲爱av| 久久夜色精品国产欧美乱极品 | 成人性生交视频 | 黄色片免费电影 | www.av在线.com | 国产v在线播放 | 99在线精品免费视频九九视 | 日韩免费高清在线 | av在线中文 | av成人免费在线 | 91免费看黄| 五月的婷婷 | 月下香电影| 国产精品一区二区三区四区在线观看 | 97视频人人免费看 | 在线观看理论 | 国产区精品 | 99爱视频 | 色婷婷成人 | 国产视频精品视频 | 久草视频中文 | 色激情在线 | 国产精品99久久久 | 日韩高清国产精品 | 黄色视屏免费在线观看 | 精品国产美女在线 | 欧美一级免费高清 | 黄色免费电影网站 | 综合网在线视频 | 久久久久女教师免费一区 | 毛片基地黄久久久久久天堂 | 久久精品视 | 中文免费观看 | 91精品国产一区 | 探花系列在线 | 国产精品久久久久久久久久白浆 | 欧美黄污视频 | 草久中文字幕 | 99热超碰在线 | 免费看一级黄色 | 天天爱天天草 | 亚洲精品在线看 | 天天色官网 | 欧美日韩午夜 | 日韩大片在线 | 久久久久久久av麻豆果冻 | 免费看国产黄色 | 久久午夜免费视频 | 日韩视频1区 | 国产激情小视频在线观看 | 五月天六月婷婷 | 在线色资源 | 午夜久久 | 色视频在线免费观看 | 美女很黄免费网站 | 成人综合日日夜夜 | 色婷婷五 | 6080yy午夜一二三区久久 | 国产精品综合av一区二区国产馆 | 狠狠狠狠狠狠狠 | 毛片精品免费在线观看 | 日日干 天天干 | av中文字幕免费在线观看 | 久久激情五月激情 | 中文字幕乱码亚洲精品一区 | 99热九九这里只有精品10 | 91高清免费 | 激情视频一区 | 伊人影院av | 人人爽人人爽人人爽 | 91av视频网站| 黄色在线看网站 | 99视频免费观看 | 久久久99精品免费观看乱色 | 特级西西www44高清大胆图片 | 欧美片网站yy | 亚洲国产成人在线播放 | 色资源网免费观看视频 | 狠狠躁夜夜躁人人爽超碰97香蕉 | 99久久久成人国产精品 | 国产91亚洲精品 | 精品在线观看一区二区三区 | 国产亚洲婷婷免费 | 国产一区二区三区在线免费观看 | 在线观av | 极品久久久 | 天堂网一区二区 | 97看片网| 麻豆国产精品一区二区三区 | 久久小视频 | 在线视频第一页 | 久久综合免费 | 日韩com| 99c视频高清免费观看 | 免费在线黄色av | 激情视频免费在线 | 日韩欧美在线不卡 | 一区二区在线不卡 | 在线观看视频日韩 | 91免费的视频在线播放 | 欧美日韩首页 | 成人av电影免费观看 | 黄色在线免费观看网址 | 最近字幕在线观看第一季 | 在线视频欧美精品 | 亚洲一区美女视频在线观看免费 | 亚洲午夜精品一区 | 日韩在线播放av | 99r在线播放 | 最近中文字幕免费视频 | 在线免费性生活片 | 黄色软件在线观看免费 | 日韩精品资源 | 婷婷久月| 久久在现视频 | 国产精品免费不 | 婷婷综合久久 | 国产在线不卡 | 日日草视频 | 久久国内免费视频 | 日日操网站 | 四虎在线影视 | 国产福利免费在线观看 | 成人在线观看你懂的 | 午夜精品视频一区二区三区在线看 | 中文字幕精品www乱入免费视频 | 久久久久久久久久久久99 | 日韩精品一区二区三区在线视频 | 国产免费一区二区三区网站免费 | 97超碰人人澡人人爱学生 | 一级a毛片高清视频 | 在线观看mv的中文字幕网站 |