Django学习 第一节 基础环境配置
admin
2023-05-29 18:21:27
0

       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目录下是工程的所有文件

  • __init__.py  工程的初始化文件

  • settings.py  Django的设置文件,如DEBBUG的开关,静态文件的位置等

  • urls.py     网址的入口,关联对应到views.py中的一个函数(或者generic类),访问一个网址就对应一个函数

  • wsgi.py     部署服务器时使用到的文件


子项目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的创建,数据的创建和更新。

  • django-admin.py startproject project-name

  • project manage.py startapp app-name

  • python manage.py makemigrations   #同步数据库

  • python manage.py migrate     #创建数据库

  • python manage.py flush #清空数据库,留下空表(使用时要注意)

  • python manage.py dbshell       #进入数据库命令行,如果是mysql或postresql会要用户名密码

  • python manage.py runserver                    #默认启动方式,监听在127.0.0.1:8000端口上

  • python manage.py runserver  ip:port       #监听在其他IP上

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

  • views.py 定义url响应函数,与urls.py配合使用。

  • settings.py 定义一些基本的配置参数

  • urls.py 定义对应的url规则

  • admin.py 对应管理后台


相关内容

热门资讯

台推红包政策抢救少子化危机,民... 据凤凰卫视报道,台湾少子化问题严重,民进党当局宣布,将规划针对0到18岁的孩童,每人每月发放5000...
从经贸合作到点名日本,中俄42... 【文/观察者网 王慧】5月19日至20日,俄罗斯总统普京对华进行国事访问,这是普京总统第25次到访中...
税务局工作人员上班时脚跷在桌上... 极目新闻记者 余渊5月21,国家税务总局海口市税务局发布情况通报:近期,有群众反映,我局一名工作人员...
太精辟!岛内二创《唐伯虎点秋香... “池塘里,板没电水没鱼,渔电共生可笑可笑”“货柜里,蛋发臭薯发芽,提醒民众提防提防”“二创版《唐伯虎...
胡锡进:我不认为特朗普真的能与... 特朗普周三表示,他将与赖清德就对台军售问题进行对话,引起轩然大波。周三,在被记者问到他是否计划就美国...
台北市选情突变:白营曾妍洁退党... 海峡导报综合报道 2026年底台湾地区“九合一”选举临近,岛内各政党积极部署。在国民党传统优势选区的...
空调室外机不转怎么办 如果是因为空调设置错了导致不转,那么可以重新调成正确的模式;如果是因为电源出现故障,那么可以重新插一...
防溅水龙头里面是怎么安的 安装防溅水龙头时,首先我们需要准备好工具:扳手、生料带、防溅水龙头。先将总闸关闭,以免在拆卸原先的水...
安卓手机怎么安装Adobe F... 安卓手机用户可能有时候看不了一些flash动画或者视频。那么安卓手机怎么安装Adobe Flash ...