Pyhon + Django 1.7.2 tutorial + virtualenv简单使用
最近工作中要用到python,先前没怎么接触过,把python本身的语法以及特性撸过一边之后,这两天按着django官方的文档倒腾了几天, 文档非常详细,本人英语水平也就那样,大体没什么压力,建议像我一样的新手直接去看官方文档,首先内容绝对是更新到了最新的版本,内容组织渐进有序,当然咯,就算按照文档一步一步来,倒腾的过程中总归会碰到些问题,这边博文权当给个记个流水账以后能翻翻或者说有更深的理解了顺便来update下,看看自己的一些思考方式,若果顺便也能给其他人带来点东西就算锦上添花了,扯回正题:
博文的内容基本都个人学习后消化后的纯个人理解的东西,不喜欢当一名大自然的文档搬运工,内容可能会水,有不妥当甚至错误的地方,希望大家指正和理解。
个人的python运行环境是(windows 7 + python 2.7.9 + django 1.7.2)
Django tutorial:
django官方的tutorial文档的前七部分(https://docs.djangoproject.com/en/1.7/intro/tutorial01/)基本内容是以django的安装,创建项目,django框架自带的admin管理后台,创建自己的app,编写自己的单元测试,如何编写模块化可复用的app并打包和安装,在这儿大致的过一遍一些关键的部分:
- 创建项目和创建app是两码事,他们之间有一个包含超集的关系,app可以粗暴的看做是一个可复用的模块,如果脱离django的范畴和python自带的一些模块差不多
- 安装好python之后,python全局环境变量已经设置好,pip,easy_install等包管理器都已经默认安装或者设置好
- 项目中默认使用的是sqlite,如果想查看项目中的db数据,可以下载一个SQLite manager 的火狐扩展(其他的
- django 1.7.2里面models更改之后,需要手动的添加到migrations里面然后执行相应的migrate命令让更改生效。在app的根目录下面能看到有名为migrations的文件夹,里面包含的xxxx_initial.py可查看,是生成对应db的脚本(抽象的非sql脚本,更好理解)
- django自带一套orm,抽象与db交互的逻辑,和.net的entity framework类似,整个model+orm的组合类似mvc里面的【Model】角色
- django的view里面的方法起着mvc中【Controller]的角色,读取数据,呈现页面,可能初次接触看起像觉得像mvc里面的【View】
- django里面的页面模板类似mvc里面的【View】,包含一些自己的语法,主要是起着数据占位符,简单的混合逻辑等等起动态化的作用(和jade或者asp.net mvc的razor很像)
- 在打包发布自己polls app的时候,默认polls肯定会安装到全局的python执行环境中(C:\Python27\Lib\site-packages),在测试自己的包是不想污染全局环境,最好是用pip + virtualenv
创建自己的隔离python执行环境(虚拟,沙盒什么的怎么叫都行)
virtualenv的安装和搭建:
windows环境下,安装virtualenv只需执行 “pip install virtualenv”即可,执行完成后可以在全局的python环境中找到。
在windows下推荐cmd命令行比较那啥...,推荐一款命令行工具powercmd(付费软件)
做完django tutorial之后,大家应该已经有一个mysite 的project和一个打包好的polls包,安装polls包会污染全局环境,我们用上virtualenv创建一个名叫myEnv的隔离环境,然后将我们已经创建好的mysite项目运行在myEnv中,并安装我们打包好的polls让整个site重新运行起来
进入我们创建安放虚拟环境的目录,激活隔离环境(激活隔离环境其实就是设置命令行执行环境上下文),在接下来安装django扩展其实没有任何关系,直接cd到scripts目录运行pip脚本命令就行。
将安装polls包到myEnv隔离环境中,并将mysite project在隔离环境中运行起来,查看运行效果:
至此,整个带django1.7.2的隔离环境准备好,手动安装了polls包,成功运行mysite项目。第一次写技术博文,快写死了,写到加班,妈蛋!再啰嗦两句,创建好虚拟隔离环境之后,完全可以想象自己在系统的python环境里面折腾,你无论安装django,自己的打包的扩展,或是任何第三方的包都行,他提供了你运行自己的项目的一个上下文,一个温暖你的怀抱,和范爷被剪的怀抱一样温暖。
参考资料:
https://docs.djangoproject.com/en/1.7/intro/
http://virtualenv.readthedocs.org/en/latest/userguide.html
http://virtualenv-chinese-docs.readthedocs.org/en/latest/
Pyhon + Django 1.7.2 tutorial + virtualenv简单使用的更多相关文章
- Django框架 (一) 虚拟环境配置及简单使用
虚拟环境 什么是虚拟环境 对真实的python解释器的一个拷贝版本 是事实有效的,可以独立存在运行解释python代码 可以在计算机上拷贝多个虚拟环境 为什么要使用虚拟环境 保证真实环境的纯净性 框架 ...
- django 部署,gunicorn、virtualenv、nginx
声明: 1.本篇文章是我边写命令边写的,请尊重我的劳动成果,转载请加上链接. 2.我既然公开写出来,是希望大家遇到问题的时候有个参考,所以,大家可以免费转载,使用该文章 3.但是,如果你要用这篇文章来 ...
- Django开发web环境搭建的简单方法(CentOS6.5环境)
这几天跟Linux下的Python + Django环境搭建卯上了.经过几天的琢磨,找到了一条自己认为给力的路径. 这里给出命令行,过程如下: 首次登陆,切换管理员: [web@bogon ~]$ s ...
- Django 学习笔记之六 建立一个简单的博客应用程序
最近在学习django时建立了一个简单的博客应用程序,现在把简单的步骤说一下.本人的用的版本是python 2.7.3和django 1.10.3,Windows10系统 1.首先通过命令建立项目和a ...
- Django signals机制的几个简单问题
1.Django signals机制不是异步执行,是同步执行,所以需要异步执行的耗时任务不能用这个. 2.异步耗时任务不用这个,那些用signals?主要是解耦那些多次重复场合被调用的函数.直接用事件 ...
- 基于Django rest framework 和Vue实现简单的在线教育平台
一.基于api前端显示课程详细信息 1.调整Course.vue模块 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 2 ...
- 时间转换,django的时间设置,re模块简单校验密码和手机号
时间转换和密码,手机的re模块简单校验 import re,time def check_userinfo(request): pwd = request.POST.get("pwd&quo ...
- Django之django-redis对数据进行简单缓存
最近公司老大抱怨,产品某部分内容访问速度奇慢无比,由于是之前接手的别人的代码,不太清楚业务的具体逻辑,不过,经过查看,内容为无需实时更新的内容,so 直接上缓存. 什么是缓存? 对于后端来说,要做的 ...
- Django框架深入了解_05 (Django中的缓存、Django解决跨域流程(非简单请求,简单请求)、自动生成接口文档)
一.Django中的缓存: 前戏: 在动态网站中,用户所有的请求,服务器都会去数据库中进行相应的增,删,查,改,渲染模板,执行业务逻辑,最后生成用户看到的页面. 当一个网站的用户访问量很大的时候,每一 ...
随机推荐
- codevs2492 上帝造题的七分钟 2
2492 上帝造题的七分钟 2 题目描述 Description XLk觉得<上帝造题的七分钟>不太过瘾,于是有了第二部. "第一分钟,X说,要有数列,于是便给定了一个正整数数列 ...
- 使用 HTMLTestRunner.py
HTMLTestRunner.py python 2版本 下载地址:http://tungwaiyip.info/software/HTMLTestRunner.html 教程:http://www. ...
- MySQL如何有效地创建基于 INNODB 引擎的表
2016-05-27 赵伟 数据库开发者 有用户问我们为什么下面这个建表语句会执行失败,报错是 "Row size too large ...."下面我就以这个例子出发讲一讲使用m ...
- Python分类统计数据
在数据的常见分布中,有一种是一对多存储的数据,即一个是key,其他改key对应的多个value.例如气象数据等,每天有很多组,又或者是一个球员,他每天得多少分等等.我做这个东西有三种方法,即:常规编程 ...
- 提示用户体验的最佳免费 Jquery 表单插件
网页表单是一个老生常谈的话题.出于这样或那样的目的,一些示例中都会包括用户注册,电子商务结算,用户设置甚至联系人表格.而输入栏是非常容易用现代的CSS3技术来应用样式.但是到底什么决定整体用户体验? ...
- HDU5319
题意:给一个矩形染色,顺笔表示红色,逆笔表示蓝色(既一捺和一丿),交叉表示绿色,然后给你一个图,问你用多少笔能画出这个图来. 思路:对这个图直接模拟即可,如果点i,j坐标为红色,那么判断上一个路径点是 ...
- Ci 分页类的所有属性总结
//#######################自定义分页 $config['uri_segment'] = 3;//分页方法自动测定你 URI 的哪个部分包含页数 $config['num_lin ...
- 学习JAVA第一部分总结
把自己这几天的学习情况记录下来. 第一章,认识JAVA,了解JAVA的运行机制,虚拟机. 第二章,了解java的注释,标识符,关键字.. 第三章,基本的数据类型,byte short int long ...
- My.Ioc 代码示例——如何使用默认构造参数,以及如何覆盖默认构造参数
在 Ioc 世界中,有些框架(例如 Autofac/NInject/Unity)支持传递默认参数,有些框架(例如 SimpleInjector/LightInjector 等)则不支持.作为 My.I ...
- 自定义android精美聊天界面
编写精美聊天界面,那就肯定要有收到的消息和发送的消息. 首先还是编写主界面,修改activity_chat.xml中的代码,如下所示: <?xml version="1.0" ...