LNMP系列网站零基础开发记录(二)
[目录]
扯淡吹逼之开发前奏
Django 开发环境搭建及配置
web 页面开发
Django app开发
Django 站点管理
Python 简易爬虫开发
Nginx&uWSGI 服务器配置
...
二、Django 开发环境搭建及配置
1. 开发环境
开发环境依然是Windows,可以开发的django的IDE较多,我只使用过以下几种
- Eclipse 免费IDE,需要下载pydev插件,代码提示功能不错
- Visual Studio 需要下载PTVS,结合了VS强大的编辑功能,作为C#码农用起来比较顺畅,但是很多build in的函数代码没有提示
- PyCharm Resharper的开发商开发的Python IDE,代码提示功能非常强大,特别适合我这种刚学python的又用惯了VS的小菜比
So,我们毫不犹豫的选择了PyCharm。
Python 选择了2.7.6,安装后配置环境变量,同时下载setuptools,解压之后运行
x:\setuptools-dir> easy_install.py install
安装完后,同时配置添加python-dir/scripts到环境变量,方便运行easy_install命令,同时还可以安装pip,两个都是安装python包的利器,具体有什么差别楼主也没细究,使用方式分别如下
x:\> easy_install package-name
x:\> pip install package-name
然后就可以用无脑的方式安装后面的包了,django-1.6.5
x:\> easy_install django
其次是安装MySQL5.6,一路点下去就好了。
至此,开发环境搭建完毕。由于我们使用的开发工具都有linux的版本,因此换平台也非常容易。Let's go!
2. 项目配置
SETP.1 打开PyCharm,新建项目,项目名叫errordev,项目类型选择Django Project,点击OK
SETP.2 在弹出的新建app设置里输入app名称errorapp,其他保持默认即可,这样一个崭新的django站点已经建立起来,此时SHIFT+F10即可运行站点,默认使用8000端口
此时我们可以看见我们的项目目录结构如下,
errordev
----errorapp
--------__init.py
--------admin.py
--------models.py
--------views.py
----errordev
--------__init__.py
--------settings.py
--------urls.py
--------wsgi.py
----templates
----manage.py
具体哪个文件有什么用就不单独解释了吧,看名字就知道了,django作为有优秀的MVC框架和.NET MVC有些区别,其views.py完成了controller的功能,而templates则完成了view的功能。
默认django的templates是放在每个app的目录下的,这样可以保证每个app的独立性和复用性,但是比较分散,不利于维护,PyCharm在SETP.2的时候提供了templates folder的选项,可以改变默认路径,使得所有的app的templates都集中在一起。这里也可以对settings.py直接进行配置
在文件的最上面定义基本路径(PyCharm已自动定义好了)
import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
然后修改templates的地址,django会在优先在元组中搜寻templates
TEMPLATE_DIRS = (
os.path.join(BASE_DIR, 'templates'),
)
在使用PyCharm时,默认的第一个app会自动注册,如果是其它的IDE可能需要手动注册下
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'errorapp',
)
同时配置MySQL连接,django是支持多数据库的,一个key-value对即代表了一个数据库连接,model层使用using关键词即可切换数据库,有兴趣的同学可以自行研究下。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'errordev',
'USER': 'root',
'PASSWORD': '',
'HOST': 'localhost',
'PORT': '',
}
}
然后将LANGUAGE_CODE修改为中文,这里是为了使用站点管理功能的时候提供中文界面。
LANGUAGE_CODE = 'zh-cn'
最后就是最头疼的静态文件配置了,google了好久,很多看似有用的方法不知道在楼主这为什么没用,so,自力更生,根据官方文档挨个挨个试,这里主要用了三项目
STATIC_ROOT = os.path.join(BASE_DIR, '/media/')
STATIC_URL = '/media/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, "media"),
)
首先是STATIC_URL,这里主要是告诉django哪些路径是需要映射到静态文件的,然而具体映射到哪里,则是由STATICFILES_DIRS来定义,可以包含多个绝对路径,django在依次搜索所有的目录,直到完成映射。而使用这两个配置的前提,是在INSTALLED_APPS的注册django.contrib.staticfiles,默认是包含了这个模块的,同时这里只保证在
DEBUG = True
的时候生效,也就是只有在DEV环境里使用默认的django开发服务器时生效。
[这里部署的时候会再提到]通常PRD环境里的静态文件都配置在了Apache或者Nginx里,此时这个两个配置其实是没什么用的,这里就需要引入STATIC_ROOT,它的作用目前我只在PRD环境里用到了,因为将静态文件映射的配置直接写在Aapche或Nginx里是完全没有问题的,但是我们在用到django的站点管理功能时,对应的静态文件在PRD环境里就会出现找不到的问题,这里配置了STATIC_ROOT之后,我们使用shell命令(在PyCharm按住Ctrl+Alt+R,输入collectstatic)会自动将所有的静态文件都收集到STATIC_ROOT目录下,包括站点里我们自己添加的静态文件和django本身管理功能提供的静态文件,这样PRD环境里管理功能静态文件找不到的问题就解决了
PS.
- 表达能力较差,以后慢慢更新,同时[目录]会随着跟新进度随时调整,欢迎大家拍砖!
- 网站链接会在数据积累一段时间后提供
LNMP系列网站零基础开发记录(二)的更多相关文章
- LNMP系列网站零基础开发记录(一)
[目录] 扯淡吹逼之开发前奏 Django 开发环境搭建及配置 web 页面开发 Django app开发 Django 站点管理 Python 简易爬虫开发 Nginx&uWSGI 服务器配 ...
- LNMP系列网站零基础开发记录(三)
[目录] 扯淡吹逼之开发前奏 Django 开发环境搭建及配置 web 页面开发 Django app开发 Django 站点管理 Python 简易爬虫开发 Nginx&uWSGI 服务器配 ...
- 【转载】salesforce 零基础开发入门学习(二)变量基础知识,集合,表达式,流程控制语句
salesforce 零基础开发入门学习(二)变量基础知识,集合,表达式,流程控制语句 salesforce如果简单的说可以大概分成两个部分:Apex,VisualForce Page. 其中Apex ...
- 【转载】salesforce 零基础开发入门学习(四)多表关联下的SOQL以及表字段Data type详解
salesforce 零基础开发入门学习(四)多表关联下的SOQL以及表字段Data type详解 建立好的数据表在数据库中查看有很多方式,本人目前采用以下两种方式查看数据表. 1.采用schem ...
- IM开发者的零基础通信技术入门(二):通信交换技术的百年发展史(下)
1.系列文章引言 1.1 适合谁来阅读? 本系列文章尽量使用最浅显易懂的文字.图片来组织内容,力求通信技术零基础的人群也能看懂.但个人建议,至少稍微了解过网络通信方面的知识后再看,会更有收获.如果您大 ...
- html5游戏开发-零基础开发《圣诞老人送礼物》小游戏
开言: 以前lufy前辈写过叫“ HTML5游戏开发-零基础开发RPG游戏”的系列文章,在那里面我学习了他的引擎以及了解了游戏脚本.自从看了那几篇文章,我便对游戏开发有了基本的认识.今天我也以零基础为 ...
- 【转载】salesforce 零基础开发入门学习(五)异步进程介绍与数据批处理Batchable
salesforce 零基础开发入门学习(五)异步进程介绍与数据批处理Batchable 本篇知识参考:https://developer.salesforce.com/trailhead/for ...
- 【转载】salesforce 零基础开发入门学习(三)sObject简单介绍以及简单DML操作(SOQL)
salesforce 零基础开发入门学习(三)sObject简单介绍以及简单DML操作(SOQL) salesforce中对于数据库操作和JAVA等语言对于数据库操作是有一定区别的.salesfo ...
- 【转载】salesforce 零基础开发入门学习(一)Salesforce功能介绍,IDE配置以及资源下载
salesforce 零基础开发入门学习(一)Salesforce功能介绍,IDE配置以及资源下载 目前国内已经有很多公司做salesforce,但是国内相关的资料确是少之又少.上个月末跳槽去了新 ...
随机推荐
- 码农谷 球从M米高度自由下落第N次落地时反弹的高度
题目描述 一球从M米高度自由下落,每次落地后返回原高度的一半,再落下.它在第N次落地时反弹多高?共经过多少米? 保留两位小数. 输入描述 M N 输出描述 它在第N次落地时反弹多高?共经过多少米? 保 ...
- POJ C程序设计进阶 编程题#3:运算符判定
编程题#3:运算符判定 来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩.) 注意: 总时间限制: 1000ms 内存限制: 65536kB 描述 两个 ...
- 软件工程 speedsnail 第二次冲刺8
20150525 完成任务:障碍物整体设计,实现一页多次布局: 遇到问题: 问题1 与现有资源冲突 解决1 未解决 明日任务: 蜗牛碰到线后速度方向的调整:(做优化)
- 微信开发笔记(一)通过.net如何实现接入微信
微信公众平台,给个人.企业和组织提供业务服务与用户管理能力的全新服务平台.现在基本上每个地方都可以看到微信存在,动不动就是让你扫一下加下微信. 经常遇到这样情况,“到一家餐馆吃饭,拿了个号,前台服务引 ...
- zend studio导入thinkphp的乱码问题
刚刚导入thinkphp有乱码还有错误怎么办? windows -> preference -> Work space -> text file encodeing设置为 UTF-8 ...
- Win7下安装IEWebControls.msi
编写人:CC阿爸 2014-2-22 IEWebControls.msi是发布在.net 1.1时代.微软为弥布.net控件的不足而发布一组控件.很多程序猿都喜欢用到他. 方法一: 首先保证IIS7安 ...
- MongoDB工具介绍
在Windows下面,mongodb就只有一个bin目录以及bin目录以外的三个文件,相对bin目录中包括了如下文件: bsondump.exe 用于将导出的BSON文件格式转换为JSON格式 mon ...
- Thinkphp 获取当前url
$_GET['_URL_'] 获取整个url,返回值是数组 $Think.MODULE_NAME 获取当前class的名称 $Think.ACTION_NAME 获取当前action的方法名称
- 開賣!下集 -- ASP.NET 4.5 專題實務(II)-範例應用與 4.5新功能【VB/C# 雙語法】
開賣!下集 -- ASP.NET 4.5 專題實務(II)-範例應用與 4.5新功能[VB/C# 雙語法] 我.....作者都沒拿到書呢! 全台灣最專業的電腦書店 -- 天瓏書局 已經開賣了! 感謝天 ...
- SQL Server 一些关键字详解(一)
1.CROSS APPLY 和OUTER APPLY MSDN解释如下(个人理解不是很清晰): 使用 APPLY 运算符可以为实现查询操作的外部表表达式返回的每个行调用表值函数.表值函数作为右输入,外 ...