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中的缓存: 前戏: 在动态网站中,用户所有的请求,服务器都会去数据库中进行相应的增,删,查,改,渲染模板,执行业务逻辑,最后生成用户看到的页面. 当一个网站的用户访问量很大的时候,每一 ...
随机推荐
- bzoj3223 Tyvj 1729 文艺平衡树(Splay Tree+区间翻转)
3223: Tyvj 1729 文艺平衡树 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 2202 Solved: 1226[Submit][Sta ...
- hdu 4632区间 dp
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4632 用点容斥原理转移状态, dp[i][j]=dp[i+1][j]+dp[i][j-1]-dp[i+ ...
- Cstyle的UEFI导读之SEC第一篇 Reset Vector
最近小看了一下SEC部分的code,现在来做个总结.所谓SEC就是CPU刚刚完成硬件初始化的是时候执行的和CPU体系架构息息相关的代码.主要是为后续CPU以及Chipset初始化代码所需的必备 ...
- Appium移动自动化测试(四)--one demo(转)
Appium移动自动化测试(四)--one demo 2015-06-15 20:41 by 虫师, 40514 阅读, 34 评论, 收藏, 编辑 继续更新. ------------------- ...
- 理解RESTful架构(转)
理解RESTful架构 作者: 阮一峰 http://www.ruanyifeng.com/blog/2011/09/restful 越来越多的人开始意识到,网站即软件,而且是一种新型的软件. 这 ...
- Hadoop与HBase中遇到的问题
1. Hadoop中遇到的问题 曾经所遇到的问题因为没有记录,所以忘了 (1)NameNode没有启动成功, 是因为你对HDFS多次格式化,导致datanode中与namenode中的VERSION文 ...
- Android中的Zip解压缩
import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import ...
- HDU 2066-一个人的旅行(最短路Dijkstra)
一个人的旅行 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...
- 使用jqMobi开发app基础:Badge的使用
显示效果: 红色的部分就是Badge,能够用来显示数量或者是其它的信息. 使用事实上非常easy, $.ui.updateBadge("#" + id, res.Msg, &qu ...
- mysql批量删除指定前缀或后缀表
今天突然发现我们数据库中多出很多表,后缀名为"copy",预计是navicat直接拷贝导致的,然后要对这些有同样后缀名的表进行删除,假设一个一个选择会非常麻烦,表计较多,在网上找了 ...