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中的缓存: 前戏: 在动态网站中,用户所有的请求,服务器都会去数据库中进行相应的增,删,查,改,渲染模板,执行业务逻辑,最后生成用户看到的页面. 当一个网站的用户访问量很大的时候,每一 ...
随机推荐
- C++的一些内置函数
C++里面有一些内置函数,实现了一些常用功能.虽然我手写也能写出这些函数,但是在srm或者其他一些需要速度的地方,用内置函数的优势就能体现出来了. 1.__gcd(a, b),返回a,b的最大公约数, ...
- HDU 1203 I NEED A OFFER! 01背包
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1203 解题思路:简单的01背包,用dp[i]表示花费不超过i时的最大可能性 状态转移方程 dp[i]= ...
- javascript随机将第一个dom中的图片添加到第二个div中去
javascript随机将第一个dom中的图片添加到第二个div中去,此代码的是一个简单的例子,将第一个div中的五张图片中,提取随机两张显示到第二个div中. <!DOCTYPE html P ...
- Spring 配置中的 default-lazy-init属性
spring的容器是提供了lazy-load的,即默认的缺省设置是bean没有lazy-load,该属性处于false状态,这样导致spring在启动过程导致在启动时候,会默认加载整个对象实例图,从初 ...
- erlang怎样有效监听大量并发连接
看了erlang的一些开源网络框架RabbitMQ.Ranch.他们都使用多个进程同一时候accept一个socket. 这样的方式在使得socketport监听的工作分担了很多其它的调度机会.可是, ...
- Android ExpandableListView实例Demo
前几篇文章介绍了Listview.但在实际开发中也常常会用到多层的Listview来展示数据,比方qq中的好友展示,所以这张来了解一下ExpandableListview.基本思想与Listview大 ...
- 统计学习导论:基于R应用——第五章习题
第五章习题 1. 我们主要用到下面三个公式: 根据上述公式,我们将式子化简为 对求导即可得到得到公式5-6. 2. (a) 1 - 1/n (b) 自助法是有有放回的,所以第二个的概率还是1 - 1/ ...
- 第一个 Python 程序 - Email Manager Demo
看了一些基础的 Python 新手教程后,深深感觉到 Python 的简洁与强大,这是我的第一个 Python Demo.下面是完整代码与执行截图. 代码: # encoding: utf-8 ''' ...
- [转] 使用memc-nginx和srcache-nginx模块构建高效透明的缓存机制
为了提高性能,几乎所有互联网应用都有缓存机制,其中Memcache是使用非常广泛的一个分布式缓存系统.众所周知,LAMP是非常经典的Web架构方式,但是随着Nginx的 成熟,越来越多的系统开始转型为 ...
- asp.net 中的那些编译错误(1):控件包含代码块(即<% ... %>),因此无法修改控件集合
在编译页面的时候出现:控件包含代码块(即 <% ... %>),因此无法修改控件集合错误 一般原因是: 在<head runat="server">< ...