Django学习 第一节 基础环境配置

发布时间:2020-07-01 10:48:09 作者:shark_tear
来源:网络 阅读:697

       Django是一个高效的web开发框架,使用Django可以用最小的代价构建和维护高质量的web应用。通过减少重复的代码,让人能够专注于web应用上有趣的关键性的东西。

遵循了模型-视图-控制器(MVC)的设计模式。简单来说,MVC是一种软件开发的方法,它把定义和访问 数据的代码(模型 model)、控制请求逻辑的代码(控制器 controller)和用户接口(视图 view)分割开来。我们会在以后更加深入地讨论MVC。

        这个方法最重要的优点在于它的各个部分都是 松耦合 (loosely coupled)的。这样用Django开发的Web程序中每个部分都有它自己单一的目的,并且可以单独地被修改而不会影响到其他部分。比方说,一个程序员可以在不影响底层实现的情况下修改URL;设计师可以不需要接触Python的代码就修改页面的HTML;数据库管理员在重命名数据表之后只需要修改一个地方就可以了,而不需要在一大堆文件中查找替换。


一. Django基本环境的搭建

因为笔者为自己定下的发展方向是运维开发,因此所有的开发工作都会是在linux平台上进行,后续的环境搭建也基本上都是在linux系统中,笔者使用的系统是RHEL7.2。通过pyenv来管理不同的虚拟环境,在不同的虚拟环境中可以使用不同的python版本,为后续的项目开发提供便利。

1. 安装pip

yum install python-pip

2. 安装pyenv

安装pyenv的过程比较长,请见上一篇python开发环境准备文章。

3. 使用pyenv创建一个虚拟环境,然后切换到虚拟环境

pyenv virtualenv 3.5.2 myproject
pyenv local myproject

4. 在虚拟环境中使用pip来安装django

(myproject) # pip install django

5. 查看django是否安装成功

# python -m django --version

可以看到下面的画面,说明django安装成功,这里安装的django版本是1.9.8,是最新版本。

Django学习 第一节 基础环境配置




二、Django的基本命令

首先我自己创建一个Django的目录myproject,然后在这里目录里存放我自己的Django工程

# mkdir myproject

1. 创建一个工程

# django-admin.py startproject project-name  
# django-admin.py startproject mywebsite  #我想创建一个自己的博客网站,项目叫mywebsite

2. 在工程里创建一个APP

# cd mywebsite       #进入到mywebsite工程目录
# project manage.py startapp app-name   #这是创建网站APP的默认命令

#相当于创建工程底下的子项目

# 网站的第一个版本,叫做myweb
# python manage.py startapp myweb

3. 同步数据库

# python manage.py makemigrations   #同步数据库
# python manage.py migrate      #创建数据库
# python manage.py flush      #清空数据库,留下空表(使用时要注意)
# python manage.py dbshell       #进入数据库命令行,如果是mysql或postresql会要用户名密码

我们刚开始创建网站,只需要先创建一个基础的数据库即可,其余的命令只需要记住就好。

$python manage.py migrate

Django学习 第一节 基础环境配置

4. 启动自己的网站,使用Django初始页面

# 命令说明

# python manage.py runserver         #默认启动方式,监听在127.0.0.1:8000端口上
# python manage.py runserver  ip:port       #监听在其他IP上 
# 执行命令
# python manage.py runserver 127.0.0.1:8000

然后打开浏览器,打开http://127.0.0.1:8000页面,如果看到下面的页面说明你的第一步已经成功了。

Django学习 第一节 基础环境配置

5. 更多命令

输入python manage.py 命令可以查看详细的命令列表,不记得相关命令时可以这样查询。

Django学习 第一节 基础环境配置


三、Django框架简单介绍

创建好了Django工程mywebsite和下属的子项目myweb后,工程的文件目录结构如下:

# tree mywebsite
mywebsite/
├── manage.py
└── mywebsite
├── __init__.py
├── settings.py
├── urls.py
└── wsgi.py

manag.py 文件是工程项目所有管理命令的入口,可以使用python manage.py查看所有的命令

mywebsite目录下是工程的所有文件


子项目myweb的目录结构如下:

#tree myweb
myweb
├── admin.py
├── apps.py
├── __init__.py
├── migrations
│   └── __init__.py
├── models.py
├── tests.py
└── views.py

admin.py    与后台登录有关的文件

apps.py     myweb属性相关的文件

mirgrations  数据库目录

models.py    数据库操作相关的文件

tests.py     项目测试有关的文件

views.py     网址函数,和工程目录中的urls.py相对应


四 、启动Django默认界面

1. 将新定义的myweb添加到settings.py中的INSTALL_APPS中

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'myweb',                        #新加的内容
]

还要将需要监听的网卡外网地址加入到settings.py中的可信赖的地址列表ALLOWED_HOSTS 中(Django1.10新增内容):

ALLOWED_HOSTS = [
'192.168.1.246',
]


2. 在myweb里的views.py文件中定义视图函数(访问页面时的内容)

#vim myweb/views.py

#下面是添加到views.py文件里的内容

#coding:utf-8

from django.http import HttpResponse
def index(request):
return HttpResponse("欢迎光临小灰灰的第一个小站")

第一行声明utf-8编码,因为下面使用到了中文,不使用utf-8会报错。

第二行插入了一个HttpResponse类,这个类是用来向网页返回内容,把内容显示在网页上面

第三行定义了一个函数index(request),第一个参数是request,和网页发来的请求有关,request变量里包含了get或post的内容,用户的浏览器和系统等信息包含在里面。函数返回一个HttpResponse对象,这个对象将包含的值显示在往上面


3. 添加视图函数对应的网址,就在上面第三部分我们提到的urls.py文件里。

# vim mywebsite/urls.py
from django.conf.urls import url
from django.contrib import admin
from myweb import views as mywb_views    #新添加的内容,从myweb项目里插入views模块
urlpatterns = [
  url(r'^$',myweb_views.index),        #网址对应到views模块里定义的index函数 
  url(r'^admin/', admin.site.urls),
]

内容修改后保存


4. 启动我们的第一个Django项目,因为是在虚拟机上操作的,所以需要监听在外部网卡IP上

# python manage.py runserver 0.0.0.0:8000

然后在其他机器上打开浏览器, 输入虚拟机的IP和端口http://192.168.1.246:8000 ,就可以看到如下的页面,说明我们的第一个web站点创建成功。


这一章节的知识点:

1. pip的国内源配置

2. 虚拟开发环境的配置

3. Django的基本命令,包括项目、APP的创建,数据的创建和更新。

4. Django项目的基本架构,views.py、setting.py、urls.py、admin.py这几个文件的含义和联系


推荐阅读:
  1. Django之入门 CMDB系统 (一) 基础环境
  2. Oracle学习笔记之第一节实验环境介绍及推送过程

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

python django dj j

上一篇:php中的require有什么作用

下一篇:php析构函数的用法

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》