这是第二次用Flask了,感觉非常好用,因为简便,可以很快看到demo。
Flask是使用python语言,基于Werkzeug,Jinja2的web开发微框架。作者Armin Ronacher 是出生于1989年的奥地利程序员,2010年时发布了第一版的Flask。目前0.12.2版本的flask也就3k多行代码,但是功能还是相对完善的,主要得益于flask的插件机制。
这是第二次用Flask了,感觉非常好用,因为简便,可以很快看到demo。
Flask是使用python语言,基于Werkzeug,Jinja2的web开发微框架。作者Armin Ronacher 是出生于1989年的奥地利程序员,2010年时发布了第一版的Flask。目前0.12.2版本的flask也就3k多行代码,但是功能还是相对完善的,主要得益于flask的插件机制。
Web开发是非常重要的技术手段,虽然技术难度不是很大,但是里面涉及的内容却很多。其实软件的世界里,没有什么是无法实现的,现在都是开源的,而且软件基本上没法申请专利,所以软件类的技术都不会有什么独家的技术。
Web开发中,更加看重的是开发速度快,易维护,用户体验好,其实就是颜值要高,要漂亮,从开发角度看,基本上都是使用MVC的模式,做一些简单的CRUD应用,复杂数据处理,技巧性的,算法性的都放到了更后面的地方去了。各种Web开发语言都有很多种MVC框架,我最近比较喜欢Flask,主要是他轻巧,简单,而且是python语言的,但是如果深入到Flask内部,也还是各种的设计模式,理解起来还有点费劲,那就先从表面上梳理一下近期接触到的一些模块吧。
view其实就是用户看到的页面,很久之前在windows上开发,还叫视图。这个大部分是前端的工作,基础的知识点就是,老三位HTML/CSS/JS。比较流行的类库比如Bootstrap, jQuery都是为了提高前端开发工作效率的,开发效率高,但是也有一定的学习成本。
Flask在view这方面提供了Jinjia的模板引擎,他可以很方便的通过标记,对页面进行替换、生成,然后返回给用户。
wtform是一个Flask插件,对View表单处理很方便,包括生成表单,表单校验非常方便
我理解Model其实就是数据,为了高效开发,或者说更符合OO原则,很多都是使用ORM。在Flask中,一般使用Flask-SqlAlchemy。一开始我还是挺排斥使用这类ORM的,总觉得直接使用SQL不是很痛苦么。但是发现,当要处理的数据多了,而且业务逻辑多了,把代码分解到不同的模块中,使用面向对象的方式来处理数据实体,还是很方便的。
Flask作为框架,把底层通信,HTTP的request/response,都完美封装了。CRUD开发者只需要处理route,render_template, redirect,再结合Model和View就可以搭建最简单的应用。
此外,Flask有很多插件可以很方便高效的处理一些通用业务逻辑比如Flask-login,Flask-Restful等等。
总之,Flask还是一个挺小清新的web开发框架,只要掌握了基本的模板语言,wtform,SqlAlchemy,Flask基本函数和组件,剩下的就是把所有的创意变成MVP,然后一个个的idea去尝试,没准哪个就成了。
使用CSS 渐变 是在 CSS3 Image Module 中新增加的
浏览器支持两种类型的渐变:线性渐变 (linear),通过 linear-gradient 函数定义,以及 径向渐变 (radial),通过 radial-gradient 函数定义.
为了创建一个线性渐变,你需要设置一个起始点和一个方向(指定为一个角度)的渐变效果。你还要定义终止色。终止色就是你想让Gecko去平滑的过渡,并且你必须指定至少两种,当然也会可以指定更多的颜色去创建更复杂的渐变效果。
这里是一个线性渐变从中间(水平方向)和顶部(垂直方向)开始,起始于蓝色,过渡到白色.
1 | /* 旧语法,带前缀并且已经废弃,以支持老版本的浏览器 */ |
改变相同的渐变从左到右运行:
1 | /* 新语法,不带前缀,以支持标准兼容的浏览器(Opera 12.1, IE 10, Firefox 16, Chrome 26, Safari 6.1) */ |
可以同时指定水平方向和垂直方向的起始点使渐变对角线式的运行:
1 | /* 新语法,不带前缀,以支持标准兼容的浏览器(Opera 12.1, IE 10, Firefox 16, Chrome 26, Safari 6.1) */ |
如果你不指定一个角度,这个将自动基于给定的方向。如果你更喜欢控制渐变的方向,你可以设置特定的角度。
例如,这两个渐变,第一个方向朝右,第二个有个70度的角。
右边的这个使用的是这样的CSS样式:
1 | background: linear-gradient(70deg, black, white); |
linear-grandient可以填写多于两个颜色,这样可以形成多个颜色的渐变。默认情况下每个颜色都占均等的宽度,但在颜色后面可以指定一个从0-100的百分数,来指定当前颜色的渐变位置。第一个颜色的位置默认为0, 最后一个默认为100
1 | background: linear-gradient(to right, red, blue 20%,black); |
渐变是支持透明度的。 举个例子,当你叠加多个背景层,你可以使用这个在背景图片上来创建淡入淡出的效果 :
1 | background: linear-gradient(to right, rgba(255,255,255,0), rgba(255,255,255,1)), url(http://foo.com/image.jpg); |
径向渐变使用 radial-gradient
函数语法. 这个语法和线性渐变很类似, 除了你可以指定渐变结束时的形状 (可能时一个圆形或者一个椭圆形) 以及它的大小. 默认来说,结束形状是一个椭圆形并且和容器的大小比例保持一致。
1 | background: radial-gradient(red, yellow, rgb(30, 144, 255)); |
linear-gradient
和 radial-gradient
不支持自动重复的色标。然而, repeating-linear-gradient
和 repeating-radial-gradient
可以实现这个功能。
1 | background: repeating-linear-gradient(-45deg, red, red 5px, white 5px, white 10px); |
这两天在折腾一个仿照ProductHunt的应用推荐类的网站,后台用到了wordpress。本来想在办公室的机器上做一个测试环境,但是发现走不通。主要是因为,本地机器无法开80端口,因为国家是不让个人ADSL开通80端口的。但是换成其他端口后,wordpress就是无法访问。
走了好多弯路,都没有解决这个问题,一开始认为是nginx的问题,后来觉得是php-fpm的问题,后来又去定位是不是自己的路由器的问题。最后竟然怀疑到了chrome是不是不支持特殊端口的http访问。结果才发现原来根本问题是WordPress的问题。
修改wordpress下面的wp-config.php文件,在文件最后添加两个变量。
define(‘WP_SITEURL’,‘http://d.yxkeji.cn:9011/’); define(‘WP_HOME’,‘<http://d.yxkeji.cn:9011/’);
update wp_options set option_value=‘http://d.yxkeji.cn:9011/’ where option_name=‘siteurl’;
update wp_options set option_value=‘http://d.yxkeji.cn:9011/’ where option_name=‘home’;
修改完成之后,可以正常使用测试环境了。
今天看了一个youtube频道,挺有意思,也是讲web开发的,他的特点是不仅仅讲技术,还讲了一点点思路和观点。他认为一个初学web开发的人,一定要做5各类型的project,然后一定可以找到工作。分别是租房网站、电商网站、个人简历、订餐网站、digital agency(??)。
暂且不论他说的这几个网站是否要做,但有一点是肯定的。软件开发里面有80%都是熟练性工作,只要熟悉了就不会有问题,剩下的就是工作量而已。如果想在这步省钱省时,就得自己上手。没办法穷人出身啊,不敢大手大脚
重新捡起来web开发已经四个月了,感觉还是很多事情没法做,或者说做的不熟练。
页面上的布局,结构的划分,内容的添加,各种装饰,各种控件,好多都不是特别容易想到,只能靠不停的模仿。
前端还有js需要仔细研究,这个东西零碎的东西太多。名词好多,框架好多,每个框架的特性还没有学习熟练,这个框架好像就过时了。所以只是学习框架是没有意义的。还是需要多做。
其实Web开发就这几样技术要学,HTML+CSS , Javascript , 后端开发语言PHP/Python/Ruby/Go, DB, Cache, 等等这些前端就是一些熟练工作。那个视频还讲了一个思路挺好,就是如果不懂设计,可以去dribbble上看看,但是我找了一些UI的网站,很少有一些中规中矩的设计,都是过于突出设计感的设计作品。
我目前主要的工具就是HTML+CSS+JS(Bootstrap, jQuery) , Vue(js, node , webpack, scss),Flask(python, webServer), Mysql , 这些其实已经足够用了。
后面就是多做,多看,设计不是问题,大不了就去花钱。
效仿这位大神180天180个页面,我也做一个试试,不过人家是学美术的,做的页面都很有艺术感,我感觉我做不到那么好,但是我也可以做到那么多。
今天看了webpack的一个youtube课程,对webpack有个很初级的感觉。webpack就是一个make工具。
还是打算做一个类似product hunt那样的web,目的也明确,就是找到一些小型的软件,适合小团队开发,并且有明确盈利模式的app,然后向其致敬。
今天看了这位老美的Bootstrap的讲座,可能对于长期搞前端的人来说,这没有什么,但对于我来说却特别惊艳。看上去这么复杂的页面竟然1个小时就能搞定了。