参考资料地址 http://www.ziqiangxuetang.com/django/django-install.html
官方文档
一:
1先下载Django源码包,下载地址https://www.djangoproject.com/download/
然后下载自己想安装的版本
Django 1.5.x 支持 Python 2.6.5 Python 2.7, Python 3.2 和 3.3.
Django 1.6.x 支持 Python 2.6.X, 2.7.X, 3.2.X 和 3.3.X
Django 1.7.x 支持 Python 2.7, 3.2, 3.3, 和 3.4 (注意:Python 2.6 不支持了)
Django 1.8.x 支持 Python 2.7, 3.2, 3.3, 3.4 和 3.5. (长期支持版本 LTS)
Django 1.9.x 支持 Python 2.7, 3.4 和 3.5. 不支持 3.3 了
Django 1.10.x 支持 Python 2.7, 3.4 和 3.5.
Django 1.11.x 下一个长期支持版本,将于2017年4月发布
更详细的可以参考这里,一般来说,选择长期支持版本比较好。
使用最新版本的问题就是,可能要用到的一些第三方插件没有及时更新,无法正常使用这些三方包。
如果是学习,可以选择目前的 Django 1.8.x 来进行,遇到问题也容易找到答案。
当然如果需要新版本的功能也可以使用新版本,毕竟 Django 1.9 以后admin界面还是更漂亮些
我这里选择的是1.10,运行环境是kali,下载好了的话就进到你下载的安装包的位置,然后
解压tar
-xvf Django-1.10.
tar
.gz
然后切换到当前目录cd
Django-1.8.17
安装
python setup.py
install
2然后现在我们就来做一些初始工作,先创建一下项目django-admin.py startproject blog2,blog2是我的项目名,这里可以改成自己想要的项目名,项目里面要有应用,所以再进入刚刚创建的项目里面再创建应用 :python manage.py startapp appname,这里我是名字叫blog
__init__.py然后进入我们创建的项目包project01里面去,里面的文件的作用和意思为:
Django项目是Python包,这个文件是用来告诉Python这个文件夹当做一个包。在Python术语中,包是一组模块的集合,主要用来把相似的文件分组,防止出现命名冲突。
manage.py
这是另外一个有用的脚步用来管理你的项目,你可以把它看做是你项目的的django-admin.py版本,其实,manage.py和django-admin.py是共用相同的后台代码。
settings.py
这是Django项目的主要配置文件,在这个文件里面,你可以具体说明很多选项,包括数据库设置、网页语言、需要turn on的Django功能。
urls.py
这是另外一个配置文件。你可以把它看做是介于URLS和用来处理它们的Python方法之间的匹配
里面的settings.py是我们当前的工程的配置文件,我们得编辑settings.py这个文件进行修改一下一些配置
主要的一些修改暂时就这些,不过,其中的数据库的一些配置得说一下,django默认的是所用sqlite3,而我linux下用的是mysql,如果也是mysql的话,我们要修改一下配置,但是在配置之前如果是要下载python的数据库模块MySQLdb,而1.10的话,想用mysql数据库的话,要连接mysql数据库而不使用SQLite,那么首先你必须得安装pymysql模块,python3.5版本不再支持MySQLdb模块!下载之后再去你项目目录那里的__init__.py里面添加模块才可以用
import pymysql
pymysql.install_as_MySQLdb()
,
可以发现,我把第3行的运行数据库sqlite3换成运行mysql,name是在我们要用的数据库名字,user是数据库用户,password是数据库用户密码,host是数据库在本地运行,port是端口号
我们的工程的一些基本的配置到这里了就差不多好了。
二:
1.上面只是创建了工程的基本的配置,而且也创建了应用了,现在就要配置一下应用项目的部分了
2.进到项目里面要把我们添加的应用项目添加到配置文件settings.py里面去,在最后添加,这里我的创建的应用名称为blog,记得,号结尾。
3.在项目目录进到urls.py这个文件下,这个文件就是url configure file,现在在这里面添加一条url访问,在这里创建url访问,就会自动的映射到应用blog下的views.py这个文件里面去。映射之后呈现出来的东西是什么,这就得我们自己去写了,现在就到views.py这个文件里面写
而我的之前1.8写法是。
1.10都是这样,简约又方便,先在项目里面写
blog和comments是我的应用名,然后再到应用里面建一个urls.py文件,写上
其中app_name = 'blog' blog是我的应用名,urlpatterns里面是路由规则
进到views.py编辑一下内容
然后要同步一下数据库
python manage.py syncdb,在这里你也可以顺便设置一下后台管理员(1.8还可以用,1.10已经去掉这条命令了)
注意:Django 1.7.1及以上的版本需要用以下命令
python manage.py makemigrations(migrations的功能非常强大,允许你随时修改你的模型,而不需要删除或者新建你的数据库或数据表,在不丢失数据的同时,实时动态更新数据库)
python manage.py migrate(migrate命令对所有还未实施的迁移记录进行操作)
4.因为django自带了一个开发服务器,所以只要运行 manage.py这个管理工具包就可以启动开发服务器了
然后点浏览输入网址,这里他会提醒我们输入127.0.0.1:8000这个是默认的,但是输入的时候有可能会发现不可以,他还会提醒我们这样的信息是因为我们的url定在blog/index下,输入在8000后面输入/blog/index就可以了。
这个时候会发现我的服务器会生成相关信息
而1.10是这样的
但是到了这一步,如果会输错的话,原因有可能是之前的配置错了,如果没配置错还会报错的话,可以有以下原因
数据库有没有同步,数据库名字有没有和settings.py里面你定义的数据库名称一样?在创建应用的时候有没有进入项目再创建,url有没有写错。
然后配置一下后台管理,1.10的后台管理比之前的版本比较好看。
用1.8版本的./manage.py createsuperuser 创建用户 1.10 python3 manage.py createsuperuser创建之后运行服务器./manage.py runserver 或者python3 manage.py runserver之后输入网址127.0.0.1/admin进入管理后台,直接输入名字密码之后就可以进入,默认进入的话只有认证和授权这栏,但是在应用里面的models.py和admin.py添加一些代码的话就可以很丰富增加后台的功能,并在views视图里面将后台的内容比如是文章显示出来的话,就是很接近博客了。
以1.8的为列
里面我们写的class,都会继承django.db.models.Model,每一个模型都会有一些类变量,在模型里面每一个类变量都代表了数据库中的每一个字段,然后每一个字段通过Field类的一个实例表示,比如字段CharField和日期字段DateTimeField,这个方法告诉django每个字段里保存着什么类型的数据,每一个field实例的名字就是字段的名字,并且要是机器可读的格式,也就是我的代码里面的类和实例写什么,我的数据库的的表名和列名就是什么
class User(models.Model):
username = models.CharField(max_length=50)
password = models.CharField(max_length=50)
然后修改保存修改好的数据库内容是./manage.py makemigrations xx xx是你的应用名
./manage.py migrate 是创建模式所对应的表
登陆的时候发现什么都看不见的话,是因为应用没有显示在管理站点的首页面上,在admin里面修改,app里面的admin.py修改,修改的时候导入一下model的类名,比如上面的User,就可以这样写
from .models import User #导入model里面的模块
class UserAdmin(admin.ModelAdmin):#创建模型管理对象class,然后把该对象class名作为第二个参数传入admin.site.register()
user=('username','password')要显示的内容,前提是model里面有的,不写这条的话就默认显示每一个对象的str()返回的内容
admin.site.register(User,UserAdmin)#告诉管理站点User对象要有一个管理界面
django的一些最基本的配置就到这里。