经常在购物网站,看到那种图片轮滑的效果,所以看到有人实现了,所以我也就学习下了。 首先贴出html代码:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>document</title> <link rel="stylesheet" type="text/css" href="style.css"> <script type="text/javascript" src="javascript.js"></script> </head> <body> <div id="flash"> <ul id="pic"> <li style="display:block"><img src=""></li> <li><img src="" ></li> <li><img src=""></li> <li><img src=""></li> <li><img src=""></li> <li><img src=""></li> </ul> <ol id="num"> <li class="activate">1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> <li>6</li> </ol> <a href="javascript:;" class="arrow" id="left"><</a> <a href="javascript:;" class="arrow" id="right">></a> </div> </body> </html> 图像的原路径我就不制定了,css文件
* { margin: 0; padding: 0; list-style: none; } a { text-decoration: none; color: #fff; } #flash { width: 730px; height: 454px; margin: 100px auto; position: relative; cursor: pointer; } #pic li { position: absolute; top: 0; left: 0; z-index: 1; display: none; } #num { position: absolute; left: 40%; bottom: 10px; z-index: 2; cursor:default; } #num li { float: left; width: 20px; height: 20px; border-radius: 50%; background: #666; margin: 3px; line-height: 20px; text-align: center; color: #fff; cursor: pointer; } #num li.
定义一个空的类型,里面没有任何成员函数和成员变量,对该类型求sizeof,得到的结果是多少? 答案是1。空类型中的实例中不包含任何信息,本来求sizeof应该是0,但是当我们声明该类型的实例的时候,他必须在内存中占有一定的空间,否则无法使用这些实例。至于占用多少内存,由编译器决定。Visual Studio中每个空类型的实例占用1字节的空间。
如果在该类型中添加一个构造函数和析构函数,在对该类型求sizeof,得到的结果又是多少? 和前面一样,还是1.调用构造函数和析构函数只需要知道函数的地址即可,而这些函数的地址止于类型相关,而与类型的实例无关,编译器也不会因为这两个函数而在实例内添加任何额外的信息。
那如果把析构函数标记为虚函数呢? C++的编译器一旦发现一个类型中有虚函数,就会为该类型生成虚函数表,并在该类型中的每一个实例中添加一个指向虚函数表的指针。在32位的机器上,一个指针占4字节的空间,因此求sizeof是4;如果是64位的机器,那么结果就是8.
分析下面代码运行结果:
class A { private: int value; public: A(int n) { value = n; } A(A other) { value = other.value; } void print() { std::cout<<value<<endl; } }; int main() { A a = 10; A b = a; b.print(); } 在上述代码中,复制构造函数A(A other)传入的参数是A的一个实例。由于是传值参数,我们把形参复制到实参会调用复制构造函数。因此如果允许复制构造函数传值,就会在复制构造函数内调用复制构造函数,就会形成永无止境的递归调用从而导致栈溢出。因此C++的标准不允许复制构造函数传递参数,因此会编译出错。要解决这个问题,我们可以把构造函数修改为A(const A&other),也就是把传值参数改为常量引用。
C++中可以使用struct和class来定义类型,这两种类型有什么区别? 如果没有标明成员函数或者成员变量的访问权限级别,在struct中默认的是public,而在class中默认的是private。 那么在C#中呢? C#和C++不一样。在C#中如果没有标明成员函数或者成员变量的访问权限,struct和class都是private。struct和class的区别是struct定义的是值类型,值类型的实例在栈上分配内存;而class定义的是引用类型,引用类型的实例是在堆上分配内存的。
Matlab的调试总体分为,直接调试和间接调试。 1.直接调试: (1)去掉句末的分号; (2)单独调试一个函数:将第一行的函数声明注释掉,并定义输入量,以脚本方式执行 M 文件; (3)适当地方添加输出变量值的语句; (4)添加keyboard命令;
2.工具调试: 1.)以命令行为主的调试: (1)设置断点: dbstop in mfile:在文件名为mfile的M文件第一个可执行语句前设断点; dbstop in mfile at lineno:在mfile的第lineno行设断点; dbstop in mfile at subfun:当程序执行到子程序subfun时,暂时中止执行,并设断点; dbstop if error:遇到错误时,终止M文件运行,并停在错误行(不包括try…catch语句中检测到的的错误,不能在错误后重新开始运行); dbstop if all error:遇到任何类型错误均停止(包括try…catch语句中检测到的的错误); dbstop if warning:程序可恢复运行; dbstop if caught error:当try…catch检测到运行时间错误是,停止M文件执行,可恢复运行; dbstop if naninf 或 dbstop if infnan (2)断点清除: dbclear all:清除所有M文件中的所有断点; dbclear all in mfile:清除文件名为mfile的文件中的所有断点; dbclear in mfile:清除文件名为mfile中第一个可执行语句前的断点; dbclear in mfile at lineno: dbclear in mfile at subfun: dbclear if error/warning/naninf/infnan: (3)恢复运行: dbcount:从断点处恢复程序的执行,直到下一个断点或错误后返回Matlab基本工作空间; (4)调用堆栈: dbstack: 1.
柯西分布的概率密度函数是: t是location parameter,s是scale parameter.当t=0以及s=1的时候称为标准柯西分布,标准柯西分布的密度函数是: 下面的是标准柯西分布概率密度函数分布图:
接着上一节的内容来说。我们将继续关注与上一节制作的polls应用以及Django自动产生额度管理网站。
产生一个管理员用户 首先我们需要产生一个管理员用户,运行如下命令; python manage.py createsuperuser 下面会让你输入用户名,邮箱以及用户密码,按照要求填写就可以了,这样我们就产生了一个管理员账户了。
开发服务器 Django的管理员网站是默认激活的,我们可以通过上节讲到的方式激活服务器: python manage.py runserver 现在打开浏览器,输入http://localhost:8000/admin/你就可进入管理员登录界面了,输入用户名和密码就可以登录了。
进入管理员网站 当你以超级管理员的身份进去管理员网站,你就可以看到管理员的默认界面了。
在管理员中修改poll应用 在默认管理员界面中我们看不到我们的poll应用。我们需要高速管理员Question对象具有一个管理员接口,打开polls/admin.py
from django.contrid import admin from .models import Question admin.site.register(Question) 定制管理员表单 现在我们来开始定制管理员表单,打卡polls/admin.py
from django.contrib import admin from .models import Question,Choice //Register your models here. class ChoiceInline(admin.TabularInline): model = Choice extra = 3 class QuestionAdmin(admin.ModelAdmin): #fields = ['pub_date','question_text'] list_display = ('question_text','pub_date','was_published_recently') list_filter = ['pub_date'] search_fields = ['question_text'] fieldsets = [ (None,{'fields':['question_text']}), ('Date information',{'fields':['pub_date'],'classes':['collapse']}), ] inlines = [ChoiceInline] admin.
需要找到django的安装路径,官方说的那个方法不好用,国内搜索都是都不到的,后来谷歌搜到了很简单 import django django 这样就可以找django的安装路径了,真心不懂为什么国内都看不到
突然对Django热情似火,所以就开学习了,我是根据官方文档学习的,所以我打算把官方文档翻译一遍,全当学习,首先贴官方文档的地址:https://docs.djangoproject.com/en/1.8/intro/tutorial01/。我是根据我自己的理解翻译,可能和官方有一些差入,如有不当之处,还望指正。 首先请确保你已经安装了python,Django是建立在python的基础之上,所以首先要安装python,mac上面的这些安装都比较简单,用pip 就可以了。下面就开始来创建项目吧
创建一个项目 进入到一个文件件下来创建你自己的项目,文件夹路径看你自己喜欢了,运行以下命令 django-admin statrtproject mysite 这就将会产生一个mysite文件夹,这个文件夹的名字可以随便定义的,没有什么影响。让我们一起看看产生了什么: mysite/ manage.py mysite/ __init__.py settings.py urls.py wsgi.py 关于这些文件的详细内容我就不一一介绍了,可以进入文件夹看看,下面还会提到这些文件的用法。
建立数据库 好现在打开mysite/settings.py。默认来说的配置是使用SQLite数据库,这是一种轻量级的数据库,在手机上面使用的还是蛮多的,感兴趣的同学可以去查一查。SQLite是包括在python之中的,所以你也不需要另外去安装了,同时你也可以使用其他的数据库,不过要改一下配置文件。如果对数据库有更多的想法可以去https://docs.djangoproject.com/en/1.8/ref/settings/#std:setting-DATABASES里 main有关于数据库配置更为详细的介绍。 同时注意INSTALLED_APPS设置这个文件的顶层。一般来说INSTALLED_APPS 包含一下apps:
django.contrib.admin django.contrib.auth django.contrib.contenttypes django.contrib.sessions django.contrib.messages django.contrib.staticfiles 这些应用的具体功能我就不一一介绍,反正就是为了配置更方便,到时还会用到。上面的这些应用可能会用到数据库中的表格,所以在应用他们以前我们要创建这些表格: python manage.py migrate 开发服务器 让我们看一下我们的项目能否正常工作,切换到mysite文件夹下,运行命令行: python manage.py runserver 然后就可以看到服务器正常运行的一些提示信息了
创建模型 创建你自己的应用,确定你是在和manage.py同一及的文件路径下,运行命令行: python manage.py startapp polls 这回创建一个polls文件件: polls/ __init__.py admin.py migrations/ __init__.py models.py tests.py views.py 在web应用中创建数据库的第一步是定义你自己的模型。 在我们这个简单的应用中,我们会创建两个模型Question Choice 编辑polls/models.py文件:
from django.db import models class Question(models.Model): question_text = models.CharField(max_length=200) pub_date = models.
200:成功响应 302:找到,但是请求的资源在另外一个不同的url中。 400:错误请求。这个请求不能被服务器所理解,客户端必须修改请求。 401:未认证,这个请求需要用户认证。 404:未找到。服务器没有找到任何和这个请求符合的资源。
项目代码:http://yunpan.cn/cHajgT4HvgHqx (提取码:8350) 配置项目:
首先确保你的机器安装了python和pip,这两种安装比较简单,这里就不说了。 在你的机器上安装mysql服务,这个也不细说了。然后安装Mysql-python,只要输入命令"pip install MySQL-python"就可以了。 解压项目文件代码。 进入src文件夹下,输入"make install"这样会自动安装所有的依赖库。 现在我们可以创建一个数据库:web_dev_tutorial mysql -u <your username> -p<yourpassword> 注意用户名前面有空格,而密码前面是没有空格的,这一点格外注意。 在数据库中创建实例: create database web_dev_tutorial 然后将数据库和我们的项目链接在一起,打开src/web_dev_tutorial/settings.py找到以下配置 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': "web_dev_tutorial", 'USER': 'root', 'PASSWORD': 'root', } } 把相应的用户名密码改成你的数据库的用户名密码就可以了。 6. 现在我们可以载入一些测试数据到数据库。检查data文件夹是否有个叫parse.py的文件,还有一个文件夹是rawdata,里面包含了很多的文本文件。进入文件夹test,打开一个叫做config.py的文件,你会看到以下内容 ` MYSQL_HOST = ‘127.0.0.1’ MYSQL_PORT = 3306
MYSQL_USERNAME = ‘root’ MYSQL_PASSWORD = ‘root’
MYSQL_DB_NAME = ‘web_dev_tutorial’ 同样把数据库用户名密码改成你相应的用户名密码就可以了。接着,在文件夹test下,输入make load`会自动擦除文本文件,并保存结果,这些结果也会被载入到数据库中。 7. 在文件夹src下,输入"make",你将会看到: ` MYSQL_HOST = ‘127.0.0.1’ MYSQL_PORT = 3306
在网上看到一个前端大牛的主页,觉得他有一个特效特别酷,一开始还以为是要用什么javascript代码来实现,但仔细看一下,发觉只是用几行css代码就搞定了,我觉得挺好的。 他这个效果就是鼠标放在左半部分和右半部分,整个网页的布局颜色会相互变化,我贴上前后两张图来比较一下,你们就明白了。 当鼠标放在左半部分: 当鼠标放在右半部分: 可能静态的图片看不太出效果,但是动态看起来还是比较酷的,最关键的是它的代码其实很简单。
.panel, .panel-left:hover + .panel-right { background-color: #22c3aa; color: white; } .panel-right, .panel:hover { background-color: white; color: #22c3aa; } .panel-right:hover + img#avatar { transform: rotateY(180deg); } 第一段和第二段代码主要就是背景颜色和主体颜色的改变,他把做面板鼠标移动到上面时的效果和右面板的效果设为一致,从而达到左右颠倒的效果,最后一段代码主要是下面一张图片的旋转180度。 真的是前端的东西很变化莫测,往往很简单的思路能够达到意想不到的效果,我觉得真的是值得我们很多时候多多思考的。 再贴上这个前端大神的网页http://zhangwenli.com/。真的很佩服她,一个女生居然代码写的这么好,看看别人做的东西,再看看自己的东西,简直惭愧不已,我觉得人丑还是多读书,尤其是我这种长的那么丑的人就更应该读了。