7. Django表单
我们前面都是手工在HTML文件中编写表单form元素,然后在views.py的视图函数中接收表单中的用户数据,再编写验证代码进行验证,最后使用ORM进行数据库的增删改查。这样费时费力,整个过程比较复杂,而且有可能写得不太恰当,数据验证也比较麻烦。设想一下,如果我们的表单拥有几十上百个数据字段,有不同的数据特点,如果也使用手工的方式,其效率和正确性都将无法得到保障。有鉴于此,Django在内部集成了一个表单功能,以面向对象的方式,直接使用Python代码生成HTML表单代码,专门帮助我们快速处理表单相关的内容。
Django的表单给我们提供了下面三个主要功能:
准备和重构数据用于页面渲染;
为数据创建HTML表单元素;
接收和处理用户从表单发送过来的数据。
编写Django的form表单,非常类似我们在模型系统里编写一个模型。在模型中,一个字段代表数据表的一列,而form表单中的一个字段代表
中的一个
元素。
一、创建表单模型
在项目根目录的login文件夹下,新建一个forms.py
文件,也就是/login/forms.py
,又是我们熟悉的Django组织文件的套路,一个app一套班子!
在/login/forms.py
中写入下面的代码,是不是有一种编写数据model模型的既视感?
from django import forms
class UserForm(forms.Form):
username = forms.CharField(label="用户名", max_length=128)
password = forms.CharField(label="密码", max_length=256, widget=forms.PasswordInput)
说明:
二、修改视图
使用了Django的表单后,就要在视图中进行相应的修改:
# login/views.py
def login(request):
if request.method == "POST":
login_form = forms.UserForm(request.POST)
message = "请检查填写的内容!"
if login_form.is_valid():
username = login_form.cleaned_data['username']
password = login_form.cleaned_data['password']
try:
user = models.User.objects.get(name=username)
if user.password == password:
return redirect('/index/')
else:
message = "密码不正确!"
except:
message = "用户不存在!"
return render(request, 'login/login.html', locals())
login_form = forms.UserForm()
return render(request, 'login/login.html', locals())
说明:
对于非POST方法发送数据时,比如GET方法请求页面,返回空的表单,让用户可以填入数据;
对于POST方法,接收表单数据,并验证;
使用表单类自带的is_valid()
方法一步完成数据验证工作;
验证成功后可以从表单对象的cleaned_data
数据字典中获取表单的具体值;
如果验证不通过,则返回一个包含先前数据的表单给前端页面,方便用户修改。也就是说,它会帮你保留先前填写的数据内容,而不是返回一个空表!
另外,这里使用了一个小技巧,Python内置了一个locals()函数,它返回当前所有的本地变量字典,我们可以偷懒的将这作为render函数的数据字典参数值,就不用费劲去构造一个形如{'message':message, 'login_form':login_form}
的字典了。这样做的好处当然是大大方便了我们,但是同时也可能往模板传入了一些多余的变量数据,造成数据冗余降低效率。
三、 修改login页面
Django的表单很重要的一个功能就是自动生成HTML的form表单内容。现在,我们需要修改一下原来的login.html
文件:
{% extends 'base.html' %}
{% load staticfiles %}
{% block title %}登录{% endblock %}
{% block css %} {% endblock %}
{% block content %}
{% endblock %}
上面贴了一个完整版的代码,方便大家对比参考。
说明:
你没有看错!一个{{ login_form }}
就直接完成了表单内容的生成工作!login_form
这个名称来自你在视图函数中生成的form实例的变量名!
但是,它不会生成
标签,这个要自己写;
使用POST的方法时,必须添加{% csrf_token %}
标签,用于处理csrf安全机制;
Django自动为每个input元素设置了一个id名称,对应label的for参数
重置和提交按钮需要自己写,Django不会帮你生成!
我们到浏览器中,看下实际生成的html源码是什么:
也就是说,Django的form表单功能,帮你自动生成了下面部分的代码:
用户名:
密码:
这看起来好像一个标签啊?没错,就是标签,而且是不带
的,捂脸!
实际上除了通过{{ login_form }}
简单地将表单渲染到HTML页面中了,还有下面几种方式:
{{ login_form.as_table }}
将表单渲染成一个表格元素,每个输入框作为一个标签
{{ login_form.as_p }}
将表单的每个输入框包裹在一个
标签内
{{ login_form.as_ul }}
将表单渲染成一个列表元素,每个输入框作为一个
标签
注意:上面的渲染方法中都要自己手动编写或者
标签。
重新启动服务器,刷新页面,如下图所示:
四、手动渲染表单字段
直接{{ login_form }}
虽然好,啥都不用操心,但是界面真的很丑,往往并不是你想要的,如果你要使用CSS和JS,比如你要引入Bootstarps框架,这些都需要对表单内的input元素进行额外控制,那怎么办呢?手动渲染字段就可以了。
可以通过{{ login_form.name_of_field }}
获取每一个字段,然后分别渲染,如下例所示:
{{ login_form.username.label_tag }}
{{ login_form.username}}
{{ login_form.password.label_tag }}
{{ login_form.password }}
其中的label标签可以用label_tag
方法来生成。这样子更加灵活了,但是灵活的代价就是我们要写更多的代码,又偏向原生的HTML代码多了一点。
但是问题又...又...又来了!刷新登录页面,却是下图的样子:
好像Bootstrap没有生效呀!仔细查看最终生成的页面源码,你会发现,input元素里少了一个CSS的类form-control
。这可咋办?
在form类里添加attr属性即可,如下所示修改login/forms.py
from django import forms
class UserForm(forms.Form):
username = forms.CharField(label="用户名", max_length=128, widget=forms.TextInput(attrs={'class': 'form-control'}))
password = forms.CharField(label="密码", max_length=256, widget=forms.PasswordInput(attrs={'class': 'form-control'}))
再次刷新页面,我们熟悉的Bootstarp框架UI又回来了!
实际上,Django针对{{ login_form }}
表单,提供了很多灵活的模板语法,可以循环,可以取值,可以针对可见和不可见的部分单独控制,详细内容可以参考教程前面的章节。
到了这里,你可能对Django的forms有一定的兴趣了。如果你的实际表单内容非常庞大的话,那么forms简直是必用的功能了。
forms已经很强大了,还有没有更强大的方法呢?实际上,在以数据库模型为驱动的页面开发中,还有更进一步的方法,那就是整合model模型和forms表单,你连表单类都不用写,直接使用数据模型User生成表单类,这里给出一个简单的例子:
# login/forms.py
from django import forms
from . import models
class UserForm(forms.ModelForm):
class Meta:
model = models.User
fields = ['name', 'password']
def __init__(self, *args, **kwargs):
super(UserForm, self).__init__(*args, *kwargs)
self.fields['name'].label = '用户名'
self.fields['password'].label = '密码'
要注意,用户名字段由‘username’变成了‘name’,这是model决定的。关于ModelForm,本项目不打算进一步地使用它,而是放在以后的项目中再讨论,有兴趣的同学,可以自行先研究一下。
你可能感兴趣的:(Django(16))
贝多芬诞辰250周年纪念
万千星河赴远方
就算不是古典音乐爱好者,你也一定听说过贝多芬。作为古典音乐史上最伟大的音乐家之一,他不仅是古典主义风格的集大成者,同时也是浪漫主义风格的开创者。贝多芬肖像画(1813年)贝多芬的一生共创作了9部交响曲、36首钢琴奏鸣曲、10部小提琴奏鸣曲、16首弦乐四重奏、1部歌剧及2部弥撒曲等等。数量虽然不及前辈海顿、莫扎特多,但他几乎改造了当时所有的音乐表达形式,赋予了它们全新的价值,对后世音乐的发展产生了极
密码正则验证:大小写字母、数字、特殊字符至少8位
qq_21875331
渐进式的成长
正则表达式:密码必须包含大写字母、数字、特殊字符(四种里至少三种,且至少8位)写法一:/((^(?=.*[a-z])(?=.*[A-Z])(?=.*\W)[\da-zA-Z\W]{8,16}$)|(^(?=.*\d)(?=.*[A-Z])(?=.*\W)[\da-zA-Z\W]{8,16}$)|(^(?=.*\d)(?=.*[a-z])(?=.*\W)[\da-zA-Z\W]{8,16}$)|(^
英伟达靠什么支撑起了4万亿?AI泡沫还能撑多久?
英伟达市值突破4万亿美元,既是AI算力需求爆发的直接体现,也暗含市场对未来的狂热预期。其支撑逻辑与潜在风险并存,而AI泡沫的可持续性则取决于技术、商业与地缘政治的复杂博弈。⚙️一、英伟达4万亿市值的核心支撑因素技术垄断与生态壁垒硬件优势:英伟达GPU在AI训练市场占有率超87%,H100芯片的FP16算力达1979TFLOPS,领先竞品3-5倍。CUDA生态:400万开发者构建的软件护城河,成为A
二十四节气组诗 谷雨
离陌_6639
图片来源网络,若侵犯了你的权益,请联系我删除6.谷雨文/离陌背上行囊背上如行囊的我从此任行程马不停蹄今天家乡的田野春雨快马加鞭播下希望的种子观音不语目送着我和夏天一道在观音山出关图片来源网络,若侵犯了你的权益,请联系我删除你好啊,我是离陌,已然在懵懂中走过了16年的岁月,为了珍惜当下的每一秒,所以立志做一名终身学习者。文学对于我来说是一种信仰,诗歌是我的生命。人生之道,四通八达,即入文学,自当持之
02-Breakout靶机攻略
ZLlllllll0
02-Breakout靶机
第一步搭建靶机下载地址:https://download.vulnhub.com/empire/02-Breakout.zip下载好了之后直接用VM打开然后右击虚拟机,把网络连接改成nat模式第二步,信息收集然后开启虚拟机,左上角编辑,虚拟网络编辑器里面看一下靶机是哪个网段。打开kali用nmap扫一下的这个网段的存活主机,也就是扫除这个靶机的具体ip地址nmap192.168.109.1/24扫
认命修运 每日一省(16)
星_6329
命每个人的命都是父母带来的,我们每个人都没有权利选择父母,没有权利选择自己的出生。一个人从出生的那一刻就注定了你的命。我所说的认命,就是客观的接受自己的父母,接受自己的家庭。不对抗,不较劲。有些人是含着金汤匙出生的,有些人刚一出生拥有的财富可能是我们一生都得不到的。有些人是踩着泥坑出生的。有些人一出生就是等着继承皇位的。运在我们成长的过程当中,我们付出努力,学习知识,成长自己,帮助他人。我们有权利
舌尖记忆
Y十一吖
“来来来,大家尝尝我网购的老月饼。五仁馅的,看看正不正宗。”9月16日下午,刚进办公室的刘队长就热情地招呼大家吃月饼。“这个太甜了,还是小时候家里做的香。”70后的周师说起小时候自己加工的月饼,一时勾起了我儿时的记忆。那个时候,油田家属区还不在城市里。往往都是工作在哪里,家就在哪里。周围的邻居都是来自天南地北。过节也不像现在,去一趟超市,所有物资都能准备齐全,往往要提前做准备。印象最深刻的,便是中
[21]如何提高我们的睡眠质量?
刚毅的saolie
原创2016-05-29叶武滨易效能时间管理大家好我是时间管理学习并践行者努尔。在上一讲中我们谈到了高效能人士的睡眠时间。易效能提倡早睡早起,因为只有早起我们才能获得安静的时间,以便我们对自己的未来和当下做出检视与安排,让自己活在“要事第一”当中,以及对每一天的生活做到掌控。因为早起,所以我们必然要求大家要早睡,因为睡眠的时间必须有保障。据说,我们的睡眠不能超过8个小时,也尽量不要低于7个半小时,
高中三年|(16)星期六补课
静子木
10月9日星期六今天星期六,昨天就收到学校通知今天补课,国庆节放假七天,得补课。补星期四的课。中午小树同志打电话给我,告诉我他下午放学就回家。我问:用不用你爸去载你?“不用了,我们星期四只上两节课,放学只有四点五分,我自己坐公车回家。”“好,你自己小心。”下午,五点十五分,他回来了。一回到家就跟我说:妈,下雨了,我们早上都穿拖鞋去教室。“老师同意吗?”“下大雨,宿舍,教室的通道都积满水,如果穿运动
Django学习笔记(一)
学习视频为:pythondjangoweb框架开发入门全套视频教程一、安装pipinstalldjango==****检查是否安装成功django.get_version()二、django新建项目操作1、新建一个项目django-adminstartprojectproject_name2、新建APPcdproject_namedjango-adminstartappApp注:一个project
从零到一:打造基于GigaChat AI的艺术创作平台 | 笙囧同学的全栈开发实战
作者简介:笙囧同学,中科院计算机大模型方向硕士,全栈开发爱好者联系方式:
[email protected] 各大平台账号:笙囧同学座右铭:偷懒是人生进步的阶梯前言在AI技术飞速发展的今天,如何将前沿的大模型技术与实际应用相结合,一直是我们开发者关注的焦点。今天,笙囧同学将带大家从零开始,构建一个基于GigaChatAI的艺术创作平台,实现React前端+Django后端的完整全栈解决方案。这不仅仅是
现代化强国建设离不开人才支撑
d8d97f0a8566
2022年10月16日中国共产党第二十次全国代表大会在北京召开。大会对过去五年的工作和新时代十年的伟大变革进行总结并对未来国家发展指明方向。习总书记在大会指出:从现在起,中国共产党的中心任务就是团结带领全国各族人民全面建成社会主义现代化强国、实现第二个百年奋斗目标,以中国式现代化全面推进中华民族伟大复兴。现代化强国建设离不开人才支撑,要充分发挥教育、科技、人才在全面建设社会主义现代化国家的基础性、
付娅莉感恩日记(第1天)2022.11.16日
付娅莉
1.我十分感谢:891路公交司机。每天早上我都坐6:43分的这路车,司机师傅每天都会准时准地的停在我面前,让我第一个上车。谢谢!谢谢!谢谢!2.我十分感谢:我的闹钟。每天准时叫醒我,从来没有休息过。谢谢!谢谢!谢谢!3.我十分感谢:我的爱人。每天都会静静地听我唠叨一些事情。谢谢!谢谢!谢谢!4.我十分感谢:我的鞋子。穿着它走路轻松舒服。谢谢!谢谢!谢谢!5.我十分感谢:我的手机。每天工作、娱乐都离
中原焦点团队38期王芳芳坚持分享第351天,202301024总约练172次,来访148次,咨8次,观察员16次
芳芳王
现在想想,女儿不想上学,不是不思进取,而是我的不理解、不接纳导致的,话里话外其实仍然在埋怨她。我并没有真正的放下,高要求,高期待,让女儿意识到,自己做不到优秀,是不被妈妈接纳的。难得我晚上复盘后主动给孩子打个电话,孩子蛮高兴的。难得孩子提出想吃蕃石榴。
11月16日 真假相依 止于至善
H_xy
下午,和AB去工作室看看,策划活动方案。刚进去门,便被条形木制隔断后的一盆花吸引住了。最是它的花朵吸睛。仿佛鸟儿的红红头,顶部有四个羽冠,靠近尖尖嘴巴处是黑色,剩余为黄色,黄色顶端染了指甲大小的红色。它的颜值惊艳到我。我小心翼翼地摸了摸她,恐怕伤害到。那料到,结束谈论,去会议室开会,它被转移到那里。又成了众人瞩目的对象!谁知C说它是假的,并拔了出来验证。D过来,严肃地说:怎么把花拔了。此刻,有说真
小米mix3今天在故宫发布
笛白
2016年10月25日,也就是2年前的今天,小米开创性的发布mix系列的第一款手机,率先提出全面屏的概念,随着这一市场需求的崛起,无数手机厂家为解决全面屏的问题创新性的进行专研,从最开始的尽量扩大屏占比,到vivo最新款NEX惊艳式的升降式摄像头方案,到今天mix3采用磁铁滑盖式的创新设计,人类在科技的创新道路上永不止步,想尽千方百计获得手机的最佳体验感。我对小米的好感源于对雷军的逐步认识。从武汉
如何学好图像处理——从小白到大神?
chentengkui
图像处理
如何学好图像处理——从小白到大神?标签:图像处理学习方法2016-02-2617:4818439人阅读评论(25)收藏举报分类:学习方法与方法论(13)版权声明:本文为博主原创文章,未经博主允许不得转载。什么是数字图像处理?历史、以及它所研究的内容。说起图像处理,你会想到什么?你是否真的了解这个领域所研究的内容。纵向来说,数字图像处理研究的历史相当悠久;横向来说,数字图像处理研究的话题相当广泛。数
那些你不知道的医疗保障缺口
罗茜月
长期以来,市场对中国医保体系的概括一直是六个字:广覆盖、低水平。这六个字背后意味着现在的医保有哪些特点?个人医疗保障在一个什么样的水平?医疗保障缺口有哪些?第一,医保设计的核心目标是覆盖大部分人,也就是广度,而不是深度,或者说是保障的程度。因此,医保发展的首要目的是先将大部分人纳入保障范围,尤其是新农合,从2005年的参保率仅为75.66%上升到2016年的98.8%,人群覆盖率是发展的核心。在这
智慧作业三年级周长
袁缘
四、我会解决。把一张长24分米、宽16分米的大长方形纸板剪成4张同样大小的小长方形纸板,每个小长方形的周长是多少分米?解析:根据题意和上图可知:把一张长24分米、宽16分米的大长方形纸板剪成4张同样大小的小长方形纸板,就是把这块长方形纸板平均分成4份,也就是把它的长平均分成了4份,每份的长度变成了小长方形的宽,可以用除法计算出它的长度,24÷4=6(分米);仔细看图可知,大长方形纸板的的宽16分米
2022年拼多多618活动什么时候开始和结束
日常购物技巧呀
马上就是618咯,小伙们准备好购物资金了吗?可不能将鸡蛋都放在一个篮子里,多去各个电商平台逛逛,享受多重618优惠服务。那么2022拼多多618活动什么时候开始呢?快和小编一起来了解一下吧。时间:5.29日20点—6.20日每天抽三次红包,最高可领28888r‼️参与方式很简单,直接去桃宝搜官方密令即可领取,现在分享给大家!密令:【天降红包61666】这是官方密令,中大包的概率更高,现在就可以去搜
【20190316】《超级运营人》第2课《转化率》学习复盘+作业!
艾宏的阳光部落
说到产品运营,需要把握产品和运营两个方向,产品包括萌芽期、成长期、成熟期和衰退期四个周期,而运营是与用户联系的,运营有金三角模型,包括产品、用户和渠道三个方面,最终实现产品的盈利和转化。萌姐给我们讲了客流量的五步流程,获取客户的几种途径,那今天萌姐将给我们带来转化率——运营硬本领之转化率能力构建五大硬本领能力构建,接下来说一下我的收获。一、课程记录:1、转化率概念:在特定时间内运营、推广行为实现目
2019-3-16晨间日记
素若初心
今天是懒懒的日子起床:10:30就寝:12:00天气:晴心情:平静纪念日:无任务清单昨日完成的任务,最重要的三件事:1、爷爷出ICU,转进病房2、儿子在家观察照顾儿子3、打扫卫生(客厅角角落落)改进:不睡懒觉习惯养成:日更英语周目标·完成进度漫无目标爷爷进病房学习·信息·阅读速读健康·饮食·锻炼多吃青菜人际·家人·朋友陪护家人工作·思考无最美好的三件事1.懒懒的早晨2.电影《少年pi》3.和儿子聊
2020.2.16
易亦逍遥
1、不在巅峰时慕名而来,亦不在低谷时转身而去。2、从此我们俩,只有死别,没有生离。——钱钟书3、要么出众,要么出局。4、同是寒窗苦读,怎可甘拜下风?5、没有受过伤的人,才会讥笑别人身上的伤痕。——莎士比亚6、当泪的潮涌渐渐退远,理想的岛屿就会浮现。——顾城7、当命运需要你们去逆风飞翔的时候,就不能随风而去。——《少年班》8、凡事皆有可能,永远别说永远。——《放牛班的春天》9、心之所向,素履所往;心
Python 中的 JWT 认证:从生成到验证的完整指南
盛夏绽放
python 开发语言 有问必答 后端
文章目录Python中的JWT认证:从生成到验证的完整指南一、JWT是什么?为什么需要它?传统session与JWT对比二、JWT的结构解析三、Python中实现JWT1.安装PyJWT包2.生成JWT3.验证JWT4.错误处理大全四、高级应用场景1.双令牌系统(Access+Refresh)详细说明表格:异常处理补充表:2.与FastAPI/Django集成五、安全最佳实践六、性能优化技巧算法性
模型压缩中的四大核心技术 —— 量化、剪枝、知识蒸馏和二值化
由数入道
人工智能 剪枝 人工智能 算法 模型压缩 量化 知识蒸馏 二值化
一、量化(Quantization)量化的目标在于将原始以32位浮点数表示的模型参数和中间激活,转换为低精度(如FP16、INT8、甚至更低位宽)的数值表示,从而在减少模型存储占用和内存带宽的同时,加速推理运算,特别适用于移动、嵌入式和边缘计算场景。1.1概念与目标基本思想将高精度数值离散化为低精度表示。例如,将FP32权重转换为INT8,可降低内存需求约4倍,同时在支持低精度运算的硬件上加速计算
2023-10-16
来看看你们
初识他是在2002年的世界男篮世界赛中国队对阵德国队姚明的光芒被对方另一个大个子掩盖篮板行运一条龙暴扣三分…当时痴迷于篮球的我被他完全的迷住了我深深的记住了他的名字诺维斯基随后找寻一切他的资料看他所有的比赛模仿他打球的风格那是一个存在着科比艾佛森麦迪奥尼尔包括后来詹姆斯韦德等怪物的联盟他的球风并不耀眼弹跳普通速度一般因为总被对手横扫被嘲讽为软蛋他温和的性格不能在这个弱肉强食的原始森林里为自己留一点
2021-07-16
deabd01d626d
嘻嘻,距离上一次打开写文章已经过去一年了,时间真的过的好快,尤其是这半年,充斥着忙碌与改变。谁能想到,我此刻正坐在自己的小房间的书桌前,今天晚上风很凉快,连电扇都不用开。本来是在改投了一年都没有投出去的SCI,无奈思绪太缥缈,打开浏览器的收藏,发现了我这搁置了一年的。看着我写的日记竟然觉得去年的自己文笔还不错,就是有点矫情。但是我向来都是有点追求文人骚客那样的多情与浪漫的。先附一张南京的夜景,我还
LLaMA-Factory微调教程1:LLaMA-Factory安装及使用
Cachel wood
LLM和AIGC llama python 开发语言 react.js javascript 前端 microsoft
文章目录环境搭建LLaMA-Factory安装教程模型大小选择环境搭建Windows系统RTX4060Ti(16G显存)python3.10cuda=12.6cudnntorch==2.7.1+cu126torchvision==0.22.1+cu126torchaudio==2.7.1+cu126PSC:\Users\18098>nvidia-smiTueJul2201:52:192025+<
python3中,pycharm中怎么连接数据库
weixin_33736832
数据库 python 开发工具
因为python3现在还不能直接连接数据库,所有如果想连接,就只能通过以下方法:在APP中的,__init__.py中,添加以下代码就可以:importpymysqlpymysql.install_as_MySQLdb()当然前提是,那就的在setting.py中连接数据库添加所连接的mysql数据库的详细信息,如下:DATABASES={'default':{'ENGINE':'django.d
求知导刊杂志《求知导刊》杂志社求知导刊编辑部2025年第19期目录
QQ296078736
科技
理论探索AI技术对初中数学教学方式的变革与反思董秀茂;2-4新课标下初中数学新教材中方程单元的新教法实践研究杨兰桂;5-7以创客项目推动综合实践活动课程常态化实施的研究靳云;8-10+97新开办学校团队主题式课例研修的“四化”路径研究李吉庆;11-13初中班主任视角下班级文化多元共生与个性彰显的若干思考查银环;14-16小学各学段学生数学空间想象力的递进式培养研究袁占明;17-19小学数学步道校本
书其实只有三类
西蜀石兰
类
一个人一辈子其实只读三种书,知识类、技能类、修心类。
知识类的书可以让我们活得更明白。类似十万个为什么这种书籍,我一直不太乐意去读,因为单纯的知识是没法做事的,就像知道地球转速是多少一样(我肯定不知道),这种所谓的知识,除非用到,普通人掌握了完全是一种负担,维基百科能找到的东西,为什么去记忆?
知识类的书,每个方面都涉及些,让自己显得不那么没文化,仅此而已。社会认为的学识渊博,肯定不是站在
《TCP/IP 详解,卷1:协议》学习笔记、吐槽及其他
bylijinnan
tcp
《TCP/IP 详解,卷1:协议》是经典,但不适合初学者。它更像是一本字典,适合学过网络的人温习和查阅一些记不清的概念。
这本书,我看的版本是机械工业出版社、范建华等译的。这本书在我看来,翻译得一般,甚至有明显的错误。如果英文熟练,看原版更好:
http://pcvr.nl/tcpip/
下面是我的一些笔记,包括我看书时有疑问的地方,也有对该书的吐槽,有不对的地方请指正:
1.
Linux—— 静态IP跟动态IP设置
eksliang
linux IP
一.在终端输入
vi /etc/sysconfig/network-scripts/ifcfg-eth0
静态ip模板如下:
DEVICE="eth0" #网卡名称
BOOTPROTO="static" #静态IP(必须)
HWADDR="00:0C:29:B5:65:CA" #网卡mac地址
IPV6INIT=&q
Informatica update strategy transformation
18289753290
更新策略组件: 标记你的数据进入target里面做什么操作,一般会和lookup配合使用,有时候用0,1,1代表 forward rejected rows被选中,rejected row是输出在错误文件里,不想看到reject输出,将错误输出到文件,因为有时候数据库原因导致某些column不能update,reject就会output到错误文件里面供查看,在workflow的
使用Scrapy时出现虽然队列里有很多Request但是却不下载,造成假死状态
酷的飞上天空
request
现象就是:
程序运行一段时间,可能是几十分钟或者几个小时,然后后台日志里面就不出现下载页面的信息,一直显示上一分钟抓取了0个网页的信息。
刚开始已经猜到是某些下载线程没有正常执行回调方法引起程序一直以为线程还未下载完成,但是水平有限研究源码未果。
经过不停的google终于发现一个有价值的信息,是给twisted提出的一个bugfix
连接地址如下http://twistedmatrix.
利用预测分析技术来进行辅助医疗
蓝儿唯美
医疗
2014年,克利夫兰诊所(Cleveland Clinic)想要更有效地控制其手术中心做膝关节置换手术的费用。整个系统每年大约进行2600例此类手术,所以,即使降低很少一部分成本,都可以为诊 所和病人节约大量的资金。为了找到适合的解决方案,供应商将视野投向了预测分析技术和工具,但其分析团队还必须花时间向医生解释基于数据的治疗方案意味着 什么。
克利夫兰诊所负责企业信息管理和分析的医疗
java 线程(一):基础篇
DavidIsOK
java 多线程 线程
&nbs
Tomcat服务器框架之Servlet开发分析
aijuans
servlet
最近使用Tomcat做web服务器,使用Servlet技术做开发时,对Tomcat的框架的简易分析:
疑问: 为什么我们在继承HttpServlet类之后,覆盖doGet(HttpServletRequest req, HttpServetResponse rep)方法后,该方法会自动被Tomcat服务器调用,doGet方法的参数有谁传递过来?怎样传递?
分析之我见: doGet方法的
揭秘玖富的粉丝营销之谜 与小米粉丝社区类似
aoyouzi
揭秘玖富的粉丝营销之谜
玖富旗下悟空理财凭借着一个微信公众号上线当天成交量即破百万,第七天成交量单日破了1000万;第23天时,累计成交量超1个亿……至今成立不到10个月,粉丝已经超过500万,月交易额突破10亿,而玖富平台目前的总用户数也已经超过了1800万,位居P2P平台第一位。很多互联网金融创业者慕名前来学习效仿,但是却鲜有成功者,玖富的粉丝营销对外至今仍然是个谜。
近日,一直坚持微信粉丝营销
Java web的会话跟踪技术
百合不是茶
url会话 Cookie会话 Seession会话 Java Web 隐藏域会话
会话跟踪主要是用在用户页面点击不同的页面时,需要用到的技术点
会话:多次请求与响应的过程
1,url地址传递参数,实现页面跟踪技术
格式:传一个参数的
url?名=值
传两个参数的
url?名=值 &名=值
关键代码
web.xml之Servlet配置
bijian1013
java web.xml Servlet配置
定义:
<servlet>
<servlet-name>myservlet</servlet-name>
<servlet-class>com.myapp.controller.MyFirstServlet</servlet-class>
<init-param>
<param-name>
利用svnsync实现SVN同步备份
sunjing
SVN 同步 E000022 svnsync 镜像
1. 在备份SVN服务器上建立版本库
svnadmin create test
2. 创建pre-revprop-change文件
cd test/hooks/
cp pre-revprop-change.tmpl pre-revprop-change
3. 修改pre-revprop-
【分布式数据一致性三】MongoDB读写一致性
bit1129
mongodb
本系列文章结合MongoDB,探讨分布式数据库的数据一致性,这个系列文章包括:
数据一致性概述与CAP
最终一致性(Eventually Consistency)
网络分裂(Network Partition)问题
多数据中心(Multi Data Center)
多个写者(Multi Writer)最终一致性
一致性图表(Consistency Chart)
数据
Anychart图表组件-Flash图转IMG普通图的方法
白糖_
Flash
问题背景:项目使用的是Anychart图表组件,渲染出来的图是Flash的,往往一个页面有时候会有多个flash图,而需求是让我们做一个打印预览和打印功能,让多个Flash图在一个页面上打印出来。
那么我们打印预览的思路是获取页面的body元素,然后在打印预览界面通过$("body").append(html)的形式显示预览效果,结果让人大跌眼镜:Flash是
Window 80端口被占用 WHY?
bozch
端口占用 window
平时在启动一些可能使用80端口软件的时候,会提示80端口已经被其他软件占用,那一般又会有那些软件占用这些端口呢?
下面坐下总结:
1、web服务器是最经常见的占用80端口的,例如:tomcat , apache , IIS , Php等等;
2
编程之美-数组的最大值和最小值-分治法(两种形式)
bylijinnan
编程之美
import java.util.Arrays;
public class MinMaxInArray {
/**
* 编程之美 数组的最大值和最小值 分治法
* 两种形式
*/
public static void main(String[] args) {
int[] t={11,23,34,4,6,7,8,1,2,23};
int[]
Perl正则表达式
chenbowen00
正则表达式 perl
首先我们应该知道 Perl 程序中,正则表达式有三种存在形式,他们分别是:
匹配:m/<regexp>;/ (还可以简写为 /<regexp>;/ ,略去 m)
替换:s/<pattern>;/<replacement>;/
转化:tr/<pattern>;/<replacemnt>;
[宇宙与天文]行星议会是否具有本行星大气层以外的权力呢?
comsci
举个例子: 地球,地球上由200多个国家选举出一个代表地球联合体的议会,那么现在地球联合体遇到一个问题,地球这颗星球上面的矿产资源快要采掘完了....那么地球议会全体投票,一致通过一项带有法律性质的议案,既批准地球上的国家用各种技术手段在地球以外开采矿产资源和其它资源........
&
Oracle Profile 使用详解
daizj
oracle profile 资源限制
Oracle Profile 使用详解 转
一、目的:
Oracle系统中的profile可以用来对用户所能使用的数据库资源进行限制,使用Create Profile命令创建一个Profile,用它来实现对数据库资源的限制使用,如果把该profile分配给用户,则该用户所能使用的数据库资源都在该profile的限制之内。
二、条件:
创建profile必须要有CREATE PROFIL
How HipChat Stores And Indexes Billions Of Messages Using ElasticSearch & Redis
dengkane
elasticsearch Lucene
This article is from an interview with Zuhaib Siddique, a production engineer at HipChat, makers of group chat and IM for teams.
HipChat started in an unusual space, one you might not
循环小示例,菲波拉契序列,循环解一元二次方程以及switch示例程序
dcj3sjt126com
c 算法
# include <stdio.h>
int main(void)
{
int n;
int i;
int f1, f2, f3;
f1 = 1;
f2 = 1;
printf("请输入您需要求的想的序列:");
scanf("%d", &n);
for (i=3; i<n; i
macbook的lamp环境
dcj3sjt126com
lamp
sudo vim /etc/apache2/httpd.conf
/Library/WebServer/Documents
是默认的网站根目录
重启Mac上的Apache服务
这个命令很早以前就查过了,但是每次使用的时候还是要在网上查:
停止服务:sudo /usr/sbin/apachectl stop
开启服务:s
java ArrayList源码 下
shuizhaosi888
ArrayList源码
版本 jdk-7u71-windows-x64
JavaSE7 ArrayList源码上:http://flyouwith.iteye.com/blog/2166890
/**
* 从这个列表中移除所有c中包含元素
*/
public boolean removeAll(Collection<?> c) {
Spring Security(08)——intercept-url配置
234390216
Spring Security intercept-url 访问权限 访问协议 请求方法
intercept-url配置
目录
1.1 指定拦截的url
1.2 指定访问权限
1.3 指定访问协议
1.4 指定请求方法
1.1 &n
Linux环境下的oracle安装
jayung
oracle
linux系统下的oracle安装
本文档是Linux(redhat6.x、centos6.x、redhat7.x) 64位操作系统安装Oracle 11g(Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production),本文基于各种网络资料精心整理而成,共享给有需要的朋友。如有问题可联系:QQ:52-7
hotspot虚拟机
leichenlei
java HotSpot jvm 虚拟机 文档
JVM参数
http://docs.oracle.com/javase/6/docs/technotes/guides/vm/index.html
JVM工具
http://docs.oracle.com/javase/6/docs/technotes/tools/index.html
JVM垃圾回收
http://www.oracle.com
读《Node.js项目实践:构建可扩展的Web应用》 ——引编程慢慢变成系统化的“砌砖活”
noaighost
Web node.js
读《Node.js项目实践:构建可扩展的Web应用》
——引编程慢慢变成系统化的“砌砖活”
眼里的Node.JS
初初接触node是一年前的事,那时候年少不更事。还在纠结什么语言可以编写出牛逼的程序,想必每个码农都会经历这个月经性的问题:微信用什么语言写的?facebook为什么推荐系统这么智能,用什么语言写的?dota2的外挂这么牛逼,用什么语言写的?……用什么语言写这句话,困扰人也是阻碍
快速开发Android应用
rensanning
android
Android应用开发过程中,经常会遇到很多常见的类似问题,解决这些问题需要花时间,其实很多问题已经有了成熟的解决方案,比如很多第三方的开源lib,参考
Android Libraries 和
Android UI/UX Libraries。
编码越少,Bug越少,效率自然会高。
但可能由于 根本没听说过、听说过但没用过、特殊原因不能用、自己已经有了解决方案等等原因,这些成熟的解决
理解Java中的弱引用
tomcat_oracle
java 工作 面试
不久之前,我
面试了一些求职Java高级开发工程师的应聘者。我常常会面试他们说,“你能给我介绍一些Java中得弱引用吗?”,如果面试者这样说,“嗯,是不是垃圾回收有关的?”,我就会基本满意了,我并不期待回答是一篇诘究本末的论文描述。 然而事与愿违,我很吃惊的发现,在将近20多个有着平均5年开发经验和高学历背景的应聘者中,居然只有两个人知道弱引用的存在,但是在这两个人之中只有一个人真正了
标签输出html标签" target="_blank">关于 标签输出html标签
xshdch
jsp
http://back-888888.iteye.com/blog/1181202
关于<c:out value=""/>标签的使用,其中有一个属性是escapeXml默认是true(将html标签当做转移字符,直接显示不在浏览器上面进行解析),当设置escapeXml属性值为false的时候就是不过滤xml,这样就能在浏览器上解析html标签,
&nb