婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > 從ThinkPHP3.2.3過(guò)渡到ThinkPHP5.0學(xué)習(xí)筆記圖文詳解

從ThinkPHP3.2.3過(guò)渡到ThinkPHP5.0學(xué)習(xí)筆記圖文詳解

熱門標(biāo)簽:保定crm外呼系統(tǒng)運(yùn)營(yíng)商 西區(qū)企業(yè)怎么做地圖標(biāo)注入駐 地下城堡2圖九地圖標(biāo)注 抖音有個(gè)地圖標(biāo)注是什么意思 九江外呼系統(tǒng) 海南人工外呼系統(tǒng)有效果嗎 阿里云400電話申請(qǐng)加工單 七魚外呼系統(tǒng)停用嗎 智能電話機(jī)器人排名前十名南京

本文實(shí)例講述了從ThinkPHP3.2.3過(guò)渡到ThinkPHP5.0學(xué)習(xí)筆記。分享給大家供大家參考,具體如下:

用tp3.2.3做了不少項(xiàng)目,但是畢竟要與時(shí)代接軌,學(xué)習(xí)一些新的框架,比如tp5

以下記錄一些學(xué)習(xí)中遇到的問(wèn)題及解決辦法,還有tp3.2和tp5.0的一些區(qū)別,適合給用過(guò)tp3沒(méi)用過(guò)tp5的童鞋做個(gè)參考。

隨著學(xué)習(xí)不斷更新......

+++++++++++++++++++++++分割線總是要有的+++++++++++++++++++++++

首先到tp官網(wǎng)下載了一個(gè)最新的ThinkPHP5.0.22完整版:

直接扔到了服務(wù)器上,解壓后目錄結(jié)構(gòu)如下:

目錄結(jié)構(gòu)整體與tp3.2大同小異,文件夾首字母小寫了,應(yīng)用入口文件 在根目錄下 public/index.php,官方文檔對(duì)public文件夾定義為WEB部署目錄(對(duì)外訪問(wèn)目錄):

配置服務(wù)器域名解析的時(shí)候需要把項(xiàng)目根目錄指向/public:

VirtualHost *:80>
 ServerAdmin 1977629361@qq.com
 DocumentRoot /var/www/tp/public
 ServerName tp.oyhdo.com
 ServerAlias tp.oyhdo.com
 DirectoryIndex index.php index.html index.htm 
/VirtualHost>

根目錄下 application/config.php 為應(yīng)用(公共)配置文件,設(shè)置一些常用的配置,以下簡(jiǎn)稱為“配置文件”:

訪問(wèn)網(wǎng)址如下:

訪問(wèn)tp.oyhdo.com等同于訪問(wèn)tp.oyhdo.com/index.php/index/Index/index(默認(rèn)不區(qū)分大小寫)

即默認(rèn)模塊index,默認(rèn)控制器Index,默認(rèn)操作index

配置文件修改分別為default_moduledefault_controllerdefault_action

如果需要強(qiáng)制區(qū)分url大小寫,修改 url_convert false

配置文件中設(shè)置 app_debug true,打開應(yīng)用調(diào)試模式,以便開發(fā)調(diào)試:

【隱藏url中的index.php入口文件】

以Apache服務(wù)器為例,首先確認(rèn)Apache配置文件httpd.conf中開啟了mod_rewrite.so模塊:

然后把所有【AllowOverride】設(shè)為All:

 最后修改根目錄下 public/.htaccess 文件內(nèi)容為:

IfModule mod_rewrite.c>
 Options +FollowSymlinks -Multiviews
 RewriteEngine on
 RewriteCond %{REQUEST_FILENAME} !-d
 RewriteCond %{REQUEST_FILENAME} !-f
 RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]
/IfModule>
去掉index.php也可訪問(wèn):

【隱藏前臺(tái)url模塊名】 

把index模塊作為前臺(tái),在前臺(tái)新建了一個(gè)User控制器:

?php
namespace app\index\controller;

class User
{
 public function user()
 {
 return '這是User控制器的user操作';
 }
}

 正常需要這樣訪問(wèn)User控制器的user操作:

 為了前臺(tái)url顯示簡(jiǎn)潔一些,要去掉模塊名index,然后就崩了:

如果只有一個(gè)模塊,可以在 /application/common.php 中添加:

// 綁定當(dāng)前訪問(wèn)到index模塊
define('BIND_MODULE','index');

親測(cè)訪問(wèn)成功:

但是項(xiàng)目通常會(huì)有前后臺(tái)的區(qū)分,至少兩個(gè)模塊, 用上面的方法綁定index模塊后,再訪問(wèn)其它模塊就會(huì)報(bào)錯(cuò):

(新建了一個(gè)admin模塊作為后臺(tái))

?php
namespace app\admin\controller;

class Index
{
 public function index()
 {
 return '這是后臺(tái)首頁(yè)';
 }
}

 

對(duì)于多模塊的情況,可以在 /application/route.php 中綁定默認(rèn)模塊路由(去掉上面的單模塊綁定):

use think\Route;
Route::bind('index');

前臺(tái)訪問(wèn)成功:

 然后在/public/下新建一個(gè)入口文件admin.php,綁定后臺(tái)模塊admin,來(lái)訪問(wèn)后臺(tái):

?php
// [ 應(yīng)用入口文件 ]
namespace think;
// 定義應(yīng)用目錄
define('APP_PATH', __DIR__ . '/../application/');
// 加載框架引導(dǎo)文件
require __DIR__ . '/../thinkphp/base.php';
// 綁定當(dāng)前入口文件到admin模塊
Route::bind('admin');
// 關(guān)閉admin模塊的路由
App::route(false);
// 執(zhí)行應(yīng)用
App::run()->send();

后臺(tái)訪問(wèn)成功:

(修改后臺(tái)地址只需修改這個(gè)文件名即可)
 

【返回?cái)?shù)據(jù)】

配置文件中默認(rèn)輸出類型 default_return_type 為html:

 直接打印輸出字符串、數(shù)組,沒(méi)什么特殊:

public function index()
{
 $str = 'hello,world!';
 $arr = array('state'=>1,'msg'=>'success');

 //打印字符串
 echo $str;

 //打印數(shù)組
 var_dump($arr);
}

返回json格式數(shù)據(jù):

public function index()
{
 $arr = array('state'=>1,'msg'=>'success');
 return json($arr);
 
 //返回其它狀態(tài)碼或響應(yīng)頭信息
 //return json($arr, 201, ['Cache-control' => 'no-cache,must-revalidate']);

 //xml格式
 //return xml($arr);
}

(對(duì)于只做API開發(fā)的情況,可以設(shè)置default_return_type為json,直接return $arr即可返回json格式數(shù)據(jù))
 

【渲染模板、分配數(shù)據(jù)】

如圖建立視圖層,index.html作為前臺(tái)首頁(yè)(內(nèi)容為“這是首頁(yè)”):

tp3渲染模板直接在控制器里$this->display(),tp5并不支持。

tp5渲染模板,在控制器中繼承think\Controller類,使用 return $this->fetch() 或者使用助手函數(shù) return view()

?php
namespace app\index\controller;
use think\Controller;
class Index extends Controller
{
 public function index()
 {
 return $this->fetch();
 //return view();
 }
}

tp5分配數(shù)據(jù)的方式依舊使用 $this->assign()

?php
namespace app\index\controller;
use think\Controller;
class Index extends Controller
{
 public function index()
 {
 	$name = 'lws';
 $this->assign('name',$name);
 return $this->fetch();
 }
}

index.html頁(yè)面讀取數(shù)據(jù):

{$name}

(修改模板引擎標(biāo)簽 配置文件【tpl_begin】、【tpl_end】)

【繼承父類控制器】

寫一個(gè)栗子,新建一個(gè)Base控制器作為父類控制器,Index控制器繼承Base控制器

在父類控制器中初始化分配數(shù)據(jù),子類控制器渲染模板:

Base.php:

?php
namespace app\index\controller;
use think\Controller;
class Base extends Controller
{ 
 //初始化方法
 public function _initialize()
 {	
 	$haha = '快下班了';
 $this->assign('haha',$haha);
 }
}

Index.php:

?php
namespace app\index\controller;
use think\Controller;
class Index extends Base
{
 public function index()
 {
 return $this->fetch();
 }
}

index.html:

{$haha}

(與tp3.2相比,父類控制器不能是Public控制器) 

【配置參數(shù)】

tp3.2里面使用C方法設(shè)置、獲取配置參數(shù)

tp5使用助手函數(shù) config() 設(shè)置、獲取配置參數(shù):

//配置一個(gè)參數(shù)
config('name','lws');

//批量配置參數(shù)
config([
 'info'=>['sex'=>'nan','aihao'=>'nv']
]);

//獲取一個(gè)配置參數(shù)
echo config('name');

//獲取一組配置參數(shù)
dump(config('info'));

//獲取一個(gè)二級(jí)配置參數(shù)
echo config('info.sex');

【get傳參】

tp5廢除了url/參數(shù)名1/參數(shù)值1/參數(shù)名2/參數(shù)值2......這樣的方式傳參,還是老老實(shí)實(shí)用url?參數(shù)名1=參數(shù)值1參數(shù)名2=參數(shù)值2......這樣傳吧。

控制器里打印$_GET

?php
namespace app\index\controller;
use think\Controller;
class Index extends Controller
{
 public function index()
 {
 $getdate = $_GET;
 dump($getdate);	
 }
}

 這樣是不對(duì)滴:

這樣就好使:

【安全獲取變量】 

tp3.2可以使用I方法安全獲取get、post等系統(tǒng)輸入變量

tp5中使用助手函數(shù) input()

//獲取get變量
$data1 = input('get.name');

//獲取post變量
$data2 = input('post.name');

//獲取當(dāng)前請(qǐng)求變量
$data3 = input('param.name');

//獲取request變量
$data4 = input('request.name');

//獲取cookie變量
$data5 = input('cookie.name');

//獲取session變量
$data6 = input('session.name');

//獲取上傳文件信息
$data7 = input('file.image');

(注意:獲取的數(shù)據(jù)為數(shù)組,要加上 /a 修飾符才能獲取到)

$arr = input('post.arr/a');

可以在配置文件中設(shè)置全局過(guò)濾方法:

// 默認(rèn)全局過(guò)濾方法 用逗號(hào)分隔多個(gè)
'default_filter'  => 'htmlspecialchars',

【數(shù)據(jù)庫(kù)操作】

tp5的數(shù)據(jù)庫(kù)配置文件在根目錄 /application/database.php:(也可在模塊下單獨(dú)配置)

連接數(shù)據(jù)庫(kù):tp3.2支持M方法連接數(shù)據(jù)庫(kù),tp5使用 Db類 或 助手函數(shù)db()

查詢數(shù)據(jù):依舊使用 find()select() 方法,查詢一個(gè)字段使用 value() 方法代替getField()

//查詢一條
$artinfo = db('article')->find();

//查詢?nèi)?
$artinfo = db('article')->select();

//查詢一個(gè)字段
$artinfo = db('article')->value('article_title');

添加數(shù)據(jù):tp3.2使用add(),tp5使用 insert():返回插入條數(shù)  或  save():返回id

//添加一條數(shù)據(jù)
$data['article_title'] = 'PHP是世界上最好的語(yǔ)言';
$data['article_content'] = '如題';
db('article')->insert($data);
//或 db('article')->save($data);
//添加多條數(shù)據(jù)
$data = [
 ['article_title' => '標(biāo)題1', 'article_content' => '內(nèi)容1'],
 ['article_title' => '標(biāo)題2', 'article_content' => '內(nèi)容2'],
 ['article_title' => '標(biāo)題3', 'article_content' => '內(nèi)容3']
];
db('article')->insertAll($data);

修改數(shù)據(jù):tp3.2使用save(),tp5使用 update()

//修改數(shù)據(jù)
$whe['article_id'] = 1;
$data['article_title'] = '修改后的標(biāo)題';
db('article')->where($whe)->update($data);

刪除數(shù)據(jù):沒(méi)錯(cuò)還是 delete()

//刪除數(shù)據(jù)
$whe['article_id'] = 1;
db('article')->where($whe)->delete();

db()助手使用起來(lái)比較方便,但每次都會(huì)重新連接數(shù)據(jù)庫(kù),因此應(yīng)當(dāng)盡量避免多次調(diào)用,建議還是使用Db類操作數(shù)據(jù)庫(kù)。

Db類操作原生SQL:

?php
namespace app\index\controller;
use think\Db;
class Index {
 public function index() {
 // 插入記錄
 $res = Db::execute('insert into lws_article (title ,content) values ("標(biāo)題", "內(nèi)容")');
	
 // 刪除數(shù)據(jù)
 $res = Db::execute('delete from lws_article where art_id = 1 ');

 // 更新記錄
 $res = Db::execute('update lws_article set title = "修改標(biāo)題" where art_id = 1 ');

 // 查詢數(shù)據(jù)
 $res = Db::query('select * from lws_article where art_id = 1');

 // 顯示數(shù)據(jù)庫(kù)列表
 $res = Db::query('show tables from blog');

 // 清空數(shù)據(jù)表
 $res = Db::execute('TRUNCATE table lws_article');
 }
}

Db類操作查詢構(gòu)造器:

?php
namespace app\index\controller;
use think\Db;
class Index {
 public function index() {
	// 查詢數(shù)據(jù)(數(shù)據(jù)庫(kù)沒(méi)有配置表前綴)
	$res = Db::table('lws_article')
	 ->where('art_id', 1)
	 ->select();

	//以下為數(shù)據(jù)庫(kù)配置了表前綴	

	// 插入記錄
	$res = Db::name('article')
		->insert(['title' => '標(biāo)題', 'content' => '內(nèi)容']);

	// 更新記錄
	$res = Db::name('article')
		->where('art_id', 1)
		->update(['title' => "修改標(biāo)題"]);

	// 查詢數(shù)據(jù)
	$res = Db::name('article')
		->where('art_id', 1)
		->select();

	// 刪除數(shù)據(jù)
	$res = Db::name('article')
		->where('art_id', 1)
		->delete();
 
 //鏈?zhǔn)讲僮髋e例
 $artlist = Db::name('article')
	 ->where('is_del', 'N')
	 ->field('id,title,content')
	 ->order('post_time', 'desc')
	 ->limit(10)
	 ->select();
 } 
}

【切換數(shù)據(jù)庫(kù)】

首先在數(shù)據(jù)庫(kù)配置中配置多個(gè)數(shù)據(jù)庫(kù):

// 數(shù)據(jù)庫(kù)配置1
'db1' => [
	// 數(shù)據(jù)庫(kù)類型
	'type' => 'mysql',
	// 服務(wù)器地址
	'hostname' => '127.0.0.1',
	// 數(shù)據(jù)庫(kù)名
	'database' => 'blog1',
	// 數(shù)據(jù)庫(kù)用戶名
	'username' => 'root',
	// 數(shù)據(jù)庫(kù)密碼
	'password' => '123456',
	// 數(shù)據(jù)庫(kù)連接端口
	'hostport' => '',
	// 數(shù)據(jù)庫(kù)連接參數(shù)
	'params' => [],
	// 數(shù)據(jù)庫(kù)編碼默認(rèn)采用utf8
	'charset' => 'utf8',
	// 數(shù)據(jù)庫(kù)表前綴
	'prefix' => 'lws_',
],
// 數(shù)據(jù)庫(kù)配置2
'db2' => [
	// 數(shù)據(jù)庫(kù)類型
	'type' => 'mysql',
	// 服務(wù)器地址
	'hostname' => '127.0.0.1',
	// 數(shù)據(jù)庫(kù)名
	'database' => 'blog2',
	// 數(shù)據(jù)庫(kù)用戶名
	'username' => 'root',
	// 數(shù)據(jù)庫(kù)密碼
	'password' => '',
	// 數(shù)據(jù)庫(kù)連接端口
	'hostport' => '',
	// 數(shù)據(jù)庫(kù)連接參數(shù)
	'params' => [],
	// 數(shù)據(jù)庫(kù)編碼默認(rèn)采用utf8
	'charset' => 'utf8',
	// 數(shù)據(jù)庫(kù)表前綴
	'prefix' => 'lws_',
],

使用connect方法切換數(shù)據(jù)庫(kù):

?php
namespace app\index\controller;
use think\Db;
class Index {
 public function index() {
 $db1 = Db::connect('db1');
 $db2 = Db::connect('db2');
 $db1->query('select * from lws_article where art_id = 1');
 $db2->query('select * from lws_article where art_id = 2');
 }
}

【系統(tǒng)常量】

tp5廢除了一大堆常量:

REQUEST_METHOD IS_GET 
IS_POST  IS_PUT 
IS_DELETE IS_AJAX 
__EXT__  COMMON_MODULE 
MODULE_NAME CONTROLLER_NAME 
ACTION_NAME APP_NAMESPACE 
APP_DEBUG MODULE_PATH等

需要使用的常量可以自己定義,例如IS_GET、IS_POST

我在父類的初始化方法中定義了這兩個(gè)常量:

?php
namespace app\index\controller;
use think\Controller;
class Base extends Controller
{
 public function _initialize()
 {	
 	define('IS_GET',request()->isGet());
 define('IS_POST',request()->isPost());
 }
}

然后在子類控制器中就可以使用這個(gè)常量做一些判斷:

?php
namespace app\index\controller;
class Index extends Base
{
 public function index()
 { 
 if(IS_POST){
  echo 111;
 }else{
  echo 222;
 }
 }
}

【定義路由】

例如一篇博客詳情頁(yè),原來(lái)的網(wǎng)址為:http://oyhdo.com/home/article/detial?id=50,即home模塊下的article控制器下的detial操作方法,傳遞參數(shù)id。

在路由配置文件 application/route.php 中添加路由規(guī)則:

return [
 'article/:id' => 'home/article/detial',
];

或者使用 Route 類,效果一樣: 

use think\Route;
Route::rule('article/:id','home/article/detial');

定義路由規(guī)則之后訪問(wèn)http://oyhdo.com/article/50即可


 【url分隔符的修改】

修改 application/config.php 中的 pathinfo_depr :

// pathinfo分隔符
 'pathinfo_depr'  => '-',

訪問(wèn)網(wǎng)址變?yōu)椋?span style="color: #0000ff">http://oyhdo.com/article-50

【跳轉(zhuǎn)、重定向】

tp3里面的正確跳轉(zhuǎn):$this->success()、錯(cuò)誤跳轉(zhuǎn):$this->error()、重定向:$this->redirect(),在tp5里面同樣適用(繼承\think\Controller

tp5新增 redirect() 助手函數(shù)用于重定向:

return redirect('https://www.oyhdo.com');

更多關(guān)于thinkPHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《ThinkPHP入門教程》、《thinkPHP模板操作技巧總結(jié)》、《ThinkPHP常用方法總結(jié)》、《codeigniter入門教程》、《CI(CodeIgniter)框架進(jìn)階教程》、《Zend FrameWork框架入門教程》及《PHP模板技術(shù)總結(jié)》。

希望本文所述對(duì)大家基于ThinkPHP框架的PHP程序設(shè)計(jì)有所幫助。

您可能感興趣的文章:
  • thinkPHP5.0框架URL訪問(wèn)方法詳解
  • 學(xué)習(xí)thinkphp5.0驗(yàn)證類使用方法
  • 在thinkphp5.0路徑中實(shí)現(xiàn)去除index.php的方式

標(biāo)簽:涼山 九江 甘肅 昭通 韶關(guān) 十堰 遼陽(yáng) 梅河口

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《從ThinkPHP3.2.3過(guò)渡到ThinkPHP5.0學(xué)習(xí)筆記圖文詳解》,本文關(guān)鍵詞  從,ThinkPHP3.2.3,過(guò)渡到,ThinkPHP5.0,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《從ThinkPHP3.2.3過(guò)渡到ThinkPHP5.0學(xué)習(xí)筆記圖文詳解》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于從ThinkPHP3.2.3過(guò)渡到ThinkPHP5.0學(xué)習(xí)筆記圖文詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    久久99精品久久久久久动态图| 成人久久久精品乱码一区二区三区| 美女视频一区在线观看| 粗大黑人巨茎大战欧美成人| 国产拍揄自揄精品视频麻豆| 亚洲综合视频网| 欧美日韩精品免费| 欧美aaa在线| www激情久久| 成人动漫一区二区在线| 亚洲自拍偷拍九九九| 欧美一级片在线| 成人综合婷婷国产精品久久蜜臀| 欧美日韩在线精品一区二区三区激情| 久久久久青草大香线综合精品| 亚洲一区二区不卡免费| 日韩欧美国产系列| 国产99精品国产| 亚洲成人自拍偷拍| 精品99久久久久久| 色呦呦国产精品| 久久精品国产亚洲高清剧情介绍| 欧美性生活久久| 亚洲人妖av一区二区| 成人一区二区三区中文字幕| 精品久久久久99| 色综合久久九月婷婷色综合| 免费成人在线视频观看| 欧美巨大另类极品videosbest | 成人看片黄a免费看在线| 日韩一区二区在线播放| a亚洲天堂av| 精品一区二区免费视频| 亚洲欧美日韩在线| 久久久高清一区二区三区| 欧美亚洲一区二区在线| 大陆成人av片| 捆绑调教一区二区三区| 日韩欧美一级二级三级| 一本久久精品一区二区| 一级做a爱片久久| 在线观看国产91| 国产成人自拍网| 日韩综合一区二区| 亚洲精品老司机| 欧美三级日韩三级| 成人精品小蝌蚪| 国产一区999| 麻豆成人综合网| 天天操天天干天天综合网| 91麻豆精品国产91久久久久 | 日本不卡视频一二三区| 中文字幕一区二区三区乱码在线 | 日韩精品中文字幕在线不卡尤物| 日韩激情在线观看| 亚洲一二三四久久| 亚洲欧洲另类国产综合| 中文子幕无线码一区tr| 色综合天天综合网天天狠天天 | 欧美三级中文字幕| av电影天堂一区二区在线观看| 亚洲免费观看高清| 国产精品乱码一区二三区小蝌蚪| 色偷偷久久一区二区三区| 丁香婷婷综合网| 国产成人av电影免费在线观看| 成人免费在线观看入口| 欧美日韩性生活| 欧美日韩小视频| 欧美三级欧美一级| 在线播放/欧美激情| 欧美喷潮久久久xxxxx| 欧美午夜电影在线播放| 欧美视频一区二区三区在线观看| 国内精品国产成人国产三级粉色| 亚洲免费在线看| 日韩你懂的在线播放| 日韩免费高清av| 精品国产百合女同互慰| 国产亚洲人成网站| 国产精品久久免费看| ...xxx性欧美| 精品卡一卡二卡三卡四在线| 精品国产精品网麻豆系列| 欧美在线色视频| 欧美高清性hdvideosex| 日韩欧美一二区| 在线免费观看日本欧美| 国产成人免费高清| 99久久99久久精品免费观看 | 国产精品一区二区三区99| 亚洲小少妇裸体bbw| 日韩高清欧美激情| 精品亚洲成a人在线观看| 国产福利精品一区二区| 97精品久久久久中文字幕| 欧美三区免费完整视频在线观看| av综合在线播放| 欧美欧美欧美欧美| 国产欧美中文在线| 一区二区三区资源| 中文欧美字幕免费| 一区二区成人在线视频 | 久久超碰97中文字幕| 国产91精品一区二区| 91黄色小视频| 精品国产区一区| 亚洲欧美色图小说| 日本一区二区综合亚洲| 亚洲一区视频在线| 综合av第一页| 久久激情五月激情| 91丨九色porny丨蝌蚪| 欧美一区二区三区四区在线观看| 欧美日韩一区不卡| 国产区在线观看成人精品| 午夜欧美在线一二页| 国产不卡高清在线观看视频| 欧美高清hd18日本| 中文字幕一区在线观看视频| 国产精品理论片| 日本欧美一区二区三区| 波多野洁衣一区| 精品久久久久久久久久久久包黑料 | 一本大道久久a久久综合婷婷 | 国产91清纯白嫩初高中在线观看 | 成人性生交大片免费看中文网站| 黄色资源网久久资源365| 欧美在线播放高清精品| 国产日韩高清在线| 日本不卡123| 色国产综合视频| 国产精品污网站| 国产自产2019最新不卡| 欧美日本乱大交xxxxx| 亚洲欧洲日韩综合一区二区| 卡一卡二国产精品| 国产精品小仙女| 日韩欧美www| 日本不卡高清视频| 欧美日韩一区二区三区免费看 | 欧美人牲a欧美精品| 成人免费视频在线观看| 国产成人av一区二区三区在线观看| 成人性视频免费网站| 日本精品视频一区二区| 欧美三级日韩在线| 日韩三级在线观看| 久久久久88色偷偷免费| 麻豆专区一区二区三区四区五区| 国产一区久久久| 精品国产一区a| 老色鬼精品视频在线观看播放| 成人激情校园春色| 国产欧美一二三区| 国产 欧美在线| 国产精品网友自拍| 成人精品一区二区三区中文字幕| 欧美午夜一区二区三区 | 欧美三级日韩三级国产三级| 一区二区三区在线影院| 色吊一区二区三区| 亚洲国产另类精品专区| 欧美日韩国产一二三| 国产免费观看久久| 亚洲成人自拍网| 欧美唯美清纯偷拍| 三级在线观看一区二区| 欧美一区二区视频在线观看2020 | 99精品1区2区| 一区二区三区在线免费播放 | 91麻豆精品国产综合久久久久久| 国产亚洲一本大道中文在线| 国产乱人伦偷精品视频免下载 | 国产综合久久久久影院| 色综合久久中文字幕| 亚洲制服丝袜在线| 欧美男人的天堂一二区| 国产午夜三级一区二区三| 成人亚洲精品久久久久软件| 亚洲天堂中文字幕| 在线91免费看| 国产精品亚洲一区二区三区妖精| 欧美日韩小视频| 国产一区二区主播在线| 中文字幕在线观看一区二区| 欧美亚洲一区三区| 国产精品久久久久久户外露出| 免播放器亚洲一区| 亚洲国产精品激情在线观看| 在线视频国内一区二区| 蜜桃视频免费观看一区| 在线亚洲高清视频| 久久av资源站| 亚洲男同性视频| 欧美xxx久久| 日本伊人精品一区二区三区观看方式| 一本久道中文字幕精品亚洲嫩| 中文字幕精品一区| 欧美乱妇15p|