jquery导入数据_【Python成长之路】从 零做网站开发 -- 基于Flask和JQuery,实现表格管理平台...

news/2024/5/19 20:55:07/文章来源:https://blog.csdn.net/weixin_39835991/article/details/110186007

【写在前面】

你要开发网站? 嗯。。

会Flask吗? 什么东西,没听过。。。

会JQuery吗? 是python的库吗 ?

那你会什么? 我会F12打开网站

好吧,那我们来写个简单的表格管理平台。

基于Flask框架和JQuery实现管理平台网站的开发功能,我代码编写用了2天的时间 ,从零开始写;又对具体实现流程,自己断断续续地整理总结了近半个月。从自我感觉来说,整个过程和结果的实现都让我很满意。

【效果如下】

9a2400ffefa1a84e96f148374a473f10.gif

【第一步】了解Flask框架

1、了解python 主流的web框架

(1)Django:简单来说就是重武器,是最全能的开发框架,你想要的功能它都有;但是比较繁重,适合企业级的web开发;

(2)Flask:属于web开发微框架,小巧灵活,相关的第三方库丰富,适合开发小型web;

(3)Tornado:天生异步,性能强悍,但是框架提供的功能少,需要开发者自己实现;

因此,本文代码实现主要是基于Flask实现的。

2、了解Flask框架

(1)HelloWorld实现:

几乎所有的编程都是基于“hello world”实现的,因此也大致讲下helloworld涉及的内容。

from flask import Flask
app = Flask(__name__)@app.route('/')
def hello_world():return "Hello world!"if __name__ == '__main__':app.run()

先声明一个Flask框架的对象,然后定义路由'/',即URL地址为 http://127.0.0.1:5000/;如果定义路径为‘/new’,那对应的访问地址需要改为http://127.0.0.1:5000/new。另外,@app.route是个装饰器。

(2)如何实现具体IP地址或者端口的访问呢?

app.run(debug=True,host="x.x.x.x",port="1234")

通过对app.run()方法的参数定义,分别实现了调试功能,访问URL变更为 http://x.x.x.x:1234

这里调试功能还是很好用的,不但可以帮助开发者重新加载网页,而且会打印详细的错误信息,协助定位。

93a65c55418d352afe5dd39bf0e6351a.png

(3)如何在web上显示自己特定的html模板

from flask import Flask,render_template
app = Flask(__name__)@app.route('/')
def hello_world():return render_template('test.html')if __name__ == '__main__':app.run()

只需要导入render_template库,并且在函数返回时改成对应的方法即可。

不过 这 里要 注意,test.html必须保存在工程目录与下template文件下,否则会报错。(这是因为render_template方法定义时默认写了template路径 )

【第二步】了解Sqlite3数据库

web数据交互离不开后台数据库的管理,本章节重点解释python自带的sqlite3数据库。相比较于其他“正规”的数据库,如mongo、solr、MySQL等,sqlite3相当简单,属于轻量级的数据库。

1、sqlite3数据库的安装和创建

用pip命令可以下载安装sqlite3数据库

创建数据库:

con = sqlite3.connect('material.db')

如果有数据库material.db,则进行连接数据库的操作;如果没有此数据库,则先创建数据库再进行连接;

2、创建数据表

label = ['ID','网络IP','地址','责任人','联系方式']
content = ['1','10.10.10.10','杭州滨江','鹏哥','123456']def create():sql = 'create table {0} ({1},{2},{3},{4},{5})'.format(tablename,label[0],label[1],label[2],label[3],label[4])result = cur.execute(sql)con.commit()return  True if result else False

简单描述为:create table 表名 (各字段名1,各字段名2……)

当前对数据表的字段未进行输入类型及长度的限制,比如需要规则ID为必填项,并且为整形,长度在10个字节内,则需要修改为

sql = 'create table matrial_table ("ID" int[10] primary key not null )'

同理,其他字段也可以相同的方式进行类型、长度的限制。

注意:在执行cur.execute()后,要记得con.commit()进行数据库提交,否则数据并不会真正写入数据库中。

3、插入数据

def insert():sql = 'insert into {0} ({1},{2},{3},{4},{5}) values({6},"{7}","{8}","{9}","{10}")'.format(tablename,label[0],label[1],label[2],label[3],label[4],content[0],content[1],content[2],content[3],content[4])result = cur.execute(sql)con.commit()return  True if result else False

简单描述为:insert into 表名 (各字段名1,各字段名2……) values(数值1,数值2……)

这 里要注意,”{7}“ 是有加双引号的,为什么呢?因为”{7}“对应的是网络IP,是个字符串,因此需要加 双引号,否则会报错。

4、查询数据

def query():sql = 'select * from {0}'.format(tablename)result = cur.execute(sql)return list(result)

简单描述为:select XX,XX from 表名 where 字段名1="数值1"

5、更新数据:update 表名 set 字段名1=”数值1“ where 字段名2="数值2"

6、删除某条数据:delete from 表名 where 字段名1="数值1"

【补充】

如果生成了db数据库,如何查看呢?可以下载一个SQLite Expert,打开后就可以很直观地进行数据库查看,并且可以通过图形化按钮进行 数据表的增删改查。

1c56f15cad5711bcdd02cda3eb4bdf7e.png

【第三步】了解html

1、Flask框架方法编写

前面已经讲过 Flask如何调用html模板,因此我们直接展示上图对应的flask框架方法的代码

# coding=utf-8
# @Auther : "鹏哥贼优秀"
# @Date : 2019/9/23
# @Software : PyCharmfrom flask import Flask,render_template
import sqlite3
app = Flask(__name__)
con = sqlite3.connect('material.db',check_same_thread=False)@app.route('/')
def Material_Mangement():# 获取数据库material_table表的内容cur = con.cursor()sql = 'select * from {0}'.format("material_table")cur.execute(sql)content = cur.fetchall()# 获取数据库表的表头labels = [tuple[0] for tuple in cur.description]return render_template('test.html',content=content,labels=labels)if __name__ == '__main__':app.run(debug=True)

动态路由、sqlite3数据库操作、调试模式的设置,这些知识请参考之前的博客。但有2个知识点,我想再提下:

(1)如果在数据库连接时,不添加check_same_thread=False参数,则

数据库连接会报错:sqlite3.ProgrammingError: SQLite objects created in a thread can only be used in that same thread. The object was created in thread id XX。

这是因为sqlite3数据库被多线程访问导致冲突,因此这里要注意下。

(2)获取数据库表头:labels = [tuple[0] for tuple in cur.description]

2、Html文件(仅展示表格内容)

动态路由、sqlite3数据库操作、调试模式的设置,这些知识请参考之前的博客。但有2个知识点,我想再提下:

(1)如果在数据库连接时,不添加check_same_thread=False参数,则

数据库连接会报错:sqlite3.ProgrammingError: SQLite objects created in a thread can only be used in that same thread. The object was created in thread id XX。

这是因为sqlite3数据库被多线程访问导致冲突,因此这里要注意下。

(2)获取数据库表头:labels = [tuple[0] for tuple in cur.description]

2、Html文件(仅展示表格内容)

<!doctype html>
<html lang="en">
<head><!-- Required meta tags --><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><!-- Bootstrap CSS --><link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css"integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous"><title>物料管理平台</title>
</head>
<body>
<div class="row"><div class="col-md-6 col-sm-12 col-xs-12"><div class="panel panel-default"><div class="panel-heading"><h3>表格管理平台</h3></div><div class="panel-body"><div class="table-responsive"><table class="table table-striped table-bordered table-hover"><thead><tr>{% for i in labels %}<td>{{ i }}</td>{% endfor %}</tr></thead><tbody>{% for i in content %}<tr>{% for j in i %}<td>{{ j }}</td>{% endfor %}</tr>{% endfor %}</tbody></table></div></div></div></div></div>
<!-- Optional JavaScript -->
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo"crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js"integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49"crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy"crossorigin="anonymous"></script>
</body>
</html>

对应的效果是这样的:

5132f6be0b5c1ac0d07a11fe020f7438.png

因为一开始接触flask时,我只调试过html,但是根本没具体接触过html怎么写。因此上述这段代码是参考于大神的代码(https://blog.csdn.net/a19990412/article/details/84955802)。

熟悉这段代码后,我觉得有几块内容是和我要实现的代码有关的。

(1)title 标题修改

(2)表格的长宽大小:<div class="col-md-6 col-sm-12 col-xs-12"> 。 col-xs-*和col-sm-* 和col-md-*(col-xs表示超小屏幕,col-md-中等屏幕,col-sm-小屏幕)主要是用来适应不同屏幕的表格展示。因此需要自适应调整对应的数值。

(3)设置表格的ID:<table class="table table-striped table-bordered table-hover",id="test">。这里其实不设置id也是可以的,但是后续我要对表格进行编辑时,加上id会方便我定位表格,方法是:tab = document.getElementById("test")

3、Html文件(添加编辑、提交按钮)

根据上述要修改的点,我重新修改了html内容,新的html代码如下:

<!doctype html>
<html lang="en">
<head><!-- Required meta tags --><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><!-- Bootstrap CSS --><link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css"integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous"><title>表格管理平台</title>
</head>
<body>
<div class="row"><div class="col-md-12 col-sm-12 col-xs-12"><div class="panel panel-default"><div class="panel-heading"><h3>表格管理平台</h3></div><div class="panel-body"><div class="table-responsive"><table class="table table-striped table-bordered table-hover"><thead><tr>{% for i in labels %}<td>{{ i }}</td>{% endfor %}</tr></thead><tbody>{% for i in content %}<tr>{% for j in i %}<td>{{ j }}</td>{% endfor %}<td><input type="button" value="编辑"></td><td><input type="submit" value="提交"></td></tr>{% endfor %}</tbody></table></div></div></div></div></div>
<!-- Optional JavaScript -->
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo"crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js"integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49"crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy"crossorigin="anonymous"></script>
<script>(function(){$('input[type="button"]').on('click', function(){var $this = $(this),edit_status = $this.attr('edit_status'),status_value = edit_status && 1 == edit_status ? 0 : 1,$td_arr = $this.parent().prevAll('td');$this.val(1 == status_value ? '完成' : '编辑').attr('edit_status', status_value);$.each($td_arr, function(){var $td = $(this);if(1 == status_value) {$td.html('<input type="text" value="'+$td.html()+'">');} else if(0 == status_value){$td.html($td.find('input[type=text]').val());}});});})();
</script>
</body>
</html>

相比于第 2步时的html文件,这次我主要添加了2块内容:

(1)添加编辑、提交按钮:

<td><input type="button" value="编辑"></td>   <td><input type="submit" value="提交"></td>

将这两行代码放在表格每行最后,就会生成相应的按钮

(2)编辑功能的实现:

编辑按钮对应的function是基于JQuery写的,当然这 段代码我也是参考另一位大神的

(https://blog.csdn.net/luo201227/article/details/50559988),因为当前我对JQuery完全一无所知。

但是在熟悉代码后,我根据自己对代码的理解进行了注释。

<script>(function(){<!--定义属于是 button的按钮在点击后,产生下面的function功能-->$('input[type="button"]').on('click', function(){<!--获取当前事件,并进行当前按钮的状态,如果是编辑状态,就进行将每个单元格设置成可输入状态-->var $this = $(this),edit_status = $this.attr('edit_status'),status_value = edit_status && 1 == edit_status ? 0 : 1,$td_arr = $this.parent().prevAll('td');$this.val(1 == status_value ? '完成' : '编辑').attr('edit_status', status_value);<!--如果单元格是可编辑状态,获取每列元素的值,并在最后html表格上进行展示-->$.each($td_arr, function(){var $td = $(this);if(1 == status_value) {$td.html('<input type="text" value="'+$td.html()+'">');<!--如果按钮状态是完成状态,直接展示单元内的值-->} else if(0 == status_value){$td.html($td.find('input[type=text]').val());}});});})();
</script>

细心的同学会发现,我在点击”提交“按钮时,什么都没 发生。是的,”提交“功能,我将在下一个章节中进行介绍。

【第四步】了解JQuery

1、提交功能的实现,对我来说,最难的是html对前台数据的传输。因此,我就参考着编辑功能,自己一 点点写。以下是示例代码:

(1)HTML文件编写前台界面提交功能

<script>(function(){<!--定义属性是submit的按钮在点击后,产生下面的function功能-->$('input[type="submit"]').on('click', function(){<!--获取当前行的id -->var td = event.srcElement.parentElement;var rownum = td.parentElement.rowIndex;<!--获取html表格元素 -->var tab = document.getElementById("test");<!--将每个单元格元素进行取值,并以字典形式传给后台 -->var data = {"ID":tab.rows[rownum].cells[0].innerHTML,"网络IP":tab.rows[rownum].cells[1].innerHTML,"地址":tab.rows[rownum].cells[2].innerHTML,"责任人":tab.rows[rownum].cells[3].innerHTML,"联系方式":tab.rows[rownum].cells[4].innerHTML,};alert("提交成功!")$.ajax({type: "get",url: "/edit",data: data,dataType: "json"});});})();

(2)后台对提交后的数据进行读取,并写数据库

@app.route('/edit', methods=['get'])
def edit():label = ['ID', '网络IP', '地址', '责任人', '联系方式']content = [request.args.get(i) for i in label]print(content)sql = 'update {0} set {1}="{6}",{2}="{7}",{3}="{8}",{4}="{9}" where {5}={10}'.format('material_table',label[1], label[2], label[3],label[4],label[0],content[1],content[2],content[3],content[4],content[0])cur = con.cursor()cur.execute(sql)con.commit()return "数据写入成功!"

在实现“提交”功能时,我主要遇到了以下几个 坑:

(1)html代码写完后,发现程序报错,提示$.ajax is not a function。我去,我看其他大神的数据交互也是这么写的呀,为什么我这不行?

573348b98dc1aa3022a3487c39821388.png

查看网上的帖子,都是说未定义或者和其他库有冲突,最后我自己发现,是因为我没有声明是JQuery。需要在script前面加上一行代码:

<script src="http://libs.baidu.com/jquery/1.9.1/jquery.min.js"></script>

我理解这行代码的意思是声明下面要JQuery库,而不是其他JS库。(可能理解有误)

最后加上这行代码后,问题成功解决!

(2)获取当前行号

一开始在获取行号,怎么获取不到,而且不知道要怎么调试,在同事的指导下,才学会通过alert(td.innerHTML)来查看获取的当前行内容是什么。

最初从网上 查到获取当前行的写法是:

var td = event.parentElement;
var rownum = td.parentElement.rowIndex;

通过alert调试,发现点击提交根本没有反应;又改成

var td = event.srcElement;
var rownum = td.parentElement.rowIndex;

结果是获取不到任何内容

8600809fff7091a919526276a56f1156.png

就这么个小问题就花费了我近2个小时的时间去不停地查资料,尝试编写。最后想说的是,如果对html不熟悉,还是应该找个大神带带自己的。

ce6e13c0d26d924a1714af220f9aeb32.png

最后在别人的协助下,实现了获取当前行的功能:

(3)获取每个表格里的 内容

tab.rows[0].cells[0].innerHTML

在获取单元格内数据时,最验证的是我获取不到tab,即表格元素。因为我原先没有在表格元素里加id,即

c5fb8e3f1ee4b2cca71f0fb02d04d475.png

网上找了很多方法都没法实现,最后老老实实地加上 id="test"

讲道理,html里的这 20行代码是我搞这个表格管理平台时,花费最大精力的。至此,表格管理平台的功能基本成行 !

【第五步】添加新增功能

以上功能只实现了对现有数据的编辑保存功能,但是如果用户想要新增数据,怎么办?我当时第一个想法是让用户自己去改数据库,哈哈。还要我去写新增功能,要累死了,不想写。

下面是关于新增功能的介绍和示例代码。

1、如何添加“新增”按钮

<td><input type="button" value="新增" id="create"></td><br>

如果前面 的html能看懂了,这行是不难理解的。

2、点击新增按钮后,如何动态增加表格行、列

<script>(function () {$('input[id="create"]').on('click', function(){var editTable=document.getElementById("tbody");var tr=document.createElement("tr");var td1=document.createElement("td");td1.innerHTML="";tr.appendChild(td1);editTable.appendChild(tr);

首先定义tr元素,然后在tr元素中再追加td元素。如果表格里有多列数据,那只需要重复td1的写法,进行复制粘贴就可以了。

另外,当前td.innerTHML是设置为空,如果要将该单元格直接设置为编辑状态,则修改成 :

td1.innerHTML="input[type=text] /";

3、如何动态添加“编辑”、“提交”按钮,下面以“编辑”为例

var td9 = document.createElement("td")
var myedit =document.createElement("input");
myedit.type = "button";
myedit.value = "编辑"
myedit.id = "edit"
td9.appendChild(myedit)

添加方式和添加文本框方式是一样的,只是需要注意元素类型是Input,并且要补充下元素的type/value/id。

4、如何对动态添加的按钮进行事件绑定,下面以提交功能为例

$('input[id="submit"]').on('click', function(){alert("test")
}

关于动态添加的按钮进行事件绑定有很多帖子,有用Live方法的,有用$(document).on('click','.edit',function()方法的,其实不用这么麻烦,和正常的“提交”写法是完全一样的。

5、获取当前新增行内的数据,进行提交。

 var tab = document.getElementById("test");var rownum = td1.parentElement.rowIndex;$('input[id="submit"]').on('click', function(){var data = {"ID":tab.rows[rownum].cells[0].innerHTML,};alert("新增成功!")$.ajax({type: "get",url: "/create",data: data,dataType: "json"});});

这段代码和提交功能的实现是一样的,大同小异。

更多精彩内容,请滑至顶部点击右上角关注小宅哦~

ff637e73ce0ce01da0b7b399a331e87e.png

作者:鹏哥贼优秀

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_795713.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

web前端项目实例网站_推荐一个前端开源项目 CDN网站

前面学习到什么是CDN&#xff0c;全称是Content Delivery Network&#xff0c;即内容分发网络。CDN的通俗理解就是网站加速&#xff0c;CPU均衡负载。CDN的基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节&#xff0c;使内容传输的更快、更稳定&#…

win10打不开网络上的计算机,[pc玩家]Windows10中打不开网站的问题怎么解决?

当用户在浏览器中输入网站的域名时&#xff0c;此时将发送请求到DNS服务器以识别连接到该主机名的IP地址&#xff0c;只有正确解析了IP地址才会打开你想要访问的网站。但有时你会收到一个错误消息&#xff0c;告诉你DNS服务器没有响应。要解决这个问题&#xff0c;你可以尝试几…

有域名有服务器没有网站可以备案吗,只有域名没有服务器可以备案吗

只有域名没有服务器可以备案吗 内容精选换一换成功访问网站包含以下两个阶段&#xff0c;这两个阶段缺一不可&#xff0c;需要同时成功才能正常访问网站&#xff0c;如图1所示。阶段一&#xff1a;DNS根据访问请求中的域名解析出对应的IP地址。阶段二&#xff1a;访问网站服务器…

js将图片转换为base64_为网站添加图片 WebP 自动转换功能

最近这几天在网上闲逛时&#xff0c;发现了一个名叫 WebP_Server_Go 的新项目&#xff0c;可以无缝将网站上已有图片转换为 WebP 格式输出&#xff0c;同时不改变原始图片链接&#xff0c;看起来挺适合我个人博客的需求&#xff0c;使用也比较简单。网站使用 WebP 格式图片的好…

为什么linux访问不到文件夹,laravel部署到linux,将public文件夹指定为网站根目录,但是无法访问其子文件夹...

本机使用的是window环境,一切正常,但是部署到linux系统上(配的是nginx),在访问的时候,控制器和方法都能正常执行,页面也可以输出,但是输出的页面却缺少css文件,一查是500错误,已经将请求重定向到public文件夹下,我的目录结构是:public/web/css/css.css域名是:aaa.com直接访问aa…

seo自动发外链_seo如何做外链(做seo外链建设有哪些原则)

人人做seo都需要发外链&#xff0c;同样的工作最终的结果却是千差万别&#xff0c;有些人发的外链让网站优化的结果更好&#xff0c;有些人发外链带给网站的优化结果是无效甚至于是反作用的。我们seo如何做外链呢&#xff1f;做外链建设有哪些原则&#xff1f;一、发布一些高质…

个6000常用wifi弱口令._Python网站开发怎么学(9个练习项目)

> 公众号回复"Python"获取更多学习资源&#xff1b;1. CSS3 基础入门地址: https://www.shiyanlou.com/courses/1246学习人数: 710关注人数: 71该课程已升级&#xff0c;请学习《CSS3 简明教程》&#xff1a;https://www.shiyanlou.com/courses/12372. Java 简明教…

网站封装单个exe_如何测试React网站和应用程序

通过学习测试React网站和应用程序来获取可用于生产的代码。#react#如何测试React网站和应用程序(图片来源&#xff1a;未来)如果您想知道如何测试React&#xff0c;那么您来对地方了。您真的知道您的代码可以执行它的工作吗&#xff1f;您是否在浏览器中测试过&#xff1f;如果…

python建站与java建站有何不同_模板建站好不好?和定制建站有何不同?

很多新手在建站前&#xff0c;都拿不准到底是使用模板建站好&#xff0c;还是找外包团队定制开发好。这两种建站方法差异还是蛮大的&#xff0c;下面就给大家说说模板和定制的几个主要不同之处&#xff0c;你可以根据这些来判断适合自己的建站方式&#xff1a;1.制作周期不同定…

html5网站访问地图

这个地图是我结合了网上的代码自己修改了下做出来的&#xff0c;样子大概是这样 前端使用的是layui&#xff0c;如果要使用的话需要更改一下 我就直接上代码吧 <!DOCTYPE html> <html xmlns"http://www.w3.org/1999/xhtml"> <head><meta char…

wordpressQQ登陆php代码_实现 WordPress 登录查看网站

下面由WordPress教程栏目给大家介绍WordPress 登录查看网站的方法&#xff0c;希望对需要的朋友有所帮助&#xff01;如网站内容只希望注册用户浏览&#xff0c;对其他所有人隐藏&#xff0c;浏览者未登录访问直接跳转到登录注册页面&#xff0c;可以用下面的代码实现。将下面代…

十个网页html,10 个不错的 HTML5 类型网站

Agent 008 Ball 一款采用canvas和audio元素的在线桌球游戏网站The Wilderness Down Town是一个很酷的结合地图和音乐创造出来的互动式电影短片网站。这个由Chris Milk拍摄的基于html5的互动电影短片“We Used to Wait”&#xff0c;超越flash/java,非常强大。网站利用谷歌浏览器…

网站根目录打不开服务器拒绝,检查网站打不开的三种原因

自己做了网站之后&#xff0c;如果在实际访问中&#xff0c;出现了网站打不开的情况&#xff0c;怎么去查找什么原因导致了网站打不开呢&#xff1f;可以通过下面三个方面去检查一下到底自己做网站时哪里出现了问题。一、检查网站域名是否出问题。网站在线方式有二种&#xff1…

java heritrix_「heritrix」开源爬虫: Heritrix 3.1 Windows 上安装/使用 - seo实验室

heritrix目前 Heritrix 的最新版本是 3.1.0(2011-10-21 发布)http://blog.sina.com.cn/s/blog_5f54f0be0101hcy8.html讲了 1.14.4 版本的安装和使用http://blog.sina.com.cn/s/blog_5f54f0be0101hcyd.html讲了如何扩展 1.14.4 版本其中的模块本文讲如何安装和使用 Heritrix 最新…

75款响应式国外漂亮网站建设中模板(上线倒计时模板)

一些关于国外漂亮网站建设中模板&#xff0c;希望大家能使用得上&#xff0c;大家喜欢就点个赞吧。 1、 【网站开通中】黑夜飘雪背景响应式网页倒计时模板 大小&#xff1a;2.09 MB 下载地址&#xff1a;http://www.177347.com/view-105-31847-0.html 2、 【网站计划实现中…

asp php都支持的主机,Asp虚拟主机与php主机有什么区别?Asp虚拟主机适合哪些网站?...

购买过虚拟主机的朋友应该都知道&#xff0c;在我们选择主机方案时&#xff0c;一般主机商都会问我们选择PHP语言&#xff0c;还是ASP语言。那么&#xff0c;这两者之间到底有啥区别呢&#xff1f;Asp虚拟主机与php主机的区别其实&#xff0c;PHP和ASP是两种动态语言&#xff0…

c语言课设代写一般多少钱_SEO代写1000字文章要多少钱?什么价格才算合理?

如题&#xff0c;不单单是SEO代写文章这一块价钱千差万别&#xff0c;其他产品亦是如此。SEO代写报价影响因素很多&#xff0c;以价格区间去衡量合不合理&#xff0c;其实是不公平的。偏锋文章代写报价因为文章发布地址、用途、目的等各种要求的不同&#xff0c;价格也不同。下…

利用其他网站的搜索结果_网站SEO优化知识分享 - 最蜘蛛池出租

原出处&#xff1a;最蜘蛛池原文链接&#xff1a;网站SEO优化知识分享 - 最蜘蛛池1、内容相关性搜索引擎会努力为搜索者的问题提供最相关的结果。具体如何提供搜索结果&#xff0c;不同的搜索引擎有自己不同的内部算法&#xff0c;难以真正确定&#xff0c;但有几项因素肯定会影…

可以发外链的网站_守护袁昆:网站营销运营到底哪里可以发外链?

(文/守护袁昆)对于网站运营者来说网络营销推广比较难做&#xff0c;大多数朋友选择做网站SEO优化&#xff0c;然而SEO优化中外链怎么发的问题却难倒了9成9的从业者。SEO优化到底哪里可以发外链&#xff1f;极少数部分网站是可以发布外链的&#xff0c;但基本上网站收录慢、流量…

linux i2c 传输详解,I2C基础知识_Linux编程_Linux公社-Linux系统门户网站

常识两条总线线路:串行数据总线SDA&#xff0c;串行时钟总线SCL每个连接到总线的器件都有唯一的地址供其他设备寻址每个连接到总线的器件都可以作为发送器和接收器是多主机总线&#xff0c;如果两个或更多主机同时初始化&#xff0c;数据传输可以通过重提检测和仲裁防止数据被破…