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中的缓存: 前戏: 在动态网站中,用户所有的请求,服务器都会去数据库中进行相应的增,删,查,改,渲染模板,执行业务逻辑,最后生成用户看到的页面. 当一个网站的用户访问量很大的时候,每一 ...
随机推荐
- linux下挂载另一系统硬盘。
问题描述: Error mounting /dev/sda5 at /media/wangzheng/办公: Command-line `mount -t "ntfs" -o &q ...
- jsp判断手机访问和电脑访问
<% //取用户操作系统信息 String agent = request.getHeader("User-Agent") == null ? "": r ...
- mvc与mvvm
mvc:被动型式的,也就是说,只有view有要求的时候,控制器才有反应 View Controller Model 可以把一个页面看作是由多个view组成 Controller控制 ...
- hdu 4123 树形DP+RMQ
http://acm.hdu.edu.cn/showproblem.php? pid=4123 Problem Description Bob wants to hold a race to enco ...
- hdu 1882 Strange Billboard(位运算+枚举)
http://acm.hdu.edu.cn/showproblem.php?pid=1882 感觉非常不错的一道题. 给一个n*m(1<=n,m<=16)的矩阵,每一个格子都有黑白两面,当 ...
- Android源代码分析之Framework的MediaPlayer
在Android中MediaPlayer用来播放音频和视频文件,在这里分析下在Framework层中MediaPlayer是怎样调用的.MediaPlayer的代码位于:./frameworks/ba ...
- 开发环境下jboss 7.1.1 Final 的jsp热部署解决方案--转
公司的网站系统使用的中间是jboss7.1.1 Final,由于有些数据和服务测试环境不具备,免不了要在测试环境调试些jsp页面,发现从jboss社区里下载的jboss应用有个问题,新增jsp页面会实 ...
- Core Foundation框架介绍
Core Foundation框架介绍 **参考网址: ARC下OC对象和CF对象之间的桥接 Core Foundation框架介绍 Core Foundation框架 Core Foundation ...
- [转] tomcat结合nginx使用小结
相信很多人都听过nginx,这个小巧的东西慢慢地在吞食apache和IIS的份额.那究竟它有什么作用呢?可能很多人未必了解. 说到反向代理,可能很多人都听说,但具体什么是反向代理,很多人估计就不清楚了 ...
- const常量折叠
首先来看一个例子: int main(int argc, char* argv[]) { ; int *j = (int *) &i; *j=; cout<<&i<& ...