Django开发博客-(1)Django简介

时间:2021-07-27 03:26:28

Django是什么?

它是一个基于python的高级web开发框架、能够高效快速开发、高度集成、免费开源。

上网流程

首先简介一下日常使用浏览器的上网流程
Django开发博客-(1)Django简介
图1 日常上网流程

Django工程目录简介

命令行中运行
django-admin startproject blog即可创建一个django项目
此时blog的目录组成为
|—blog
———–blog
———–|———-__init__.py
———–|———-settings.py
———–|———-urls.py
———–|———-wsgi.py
———–manage.py
其中:
manage.py是与项目进行交互的命令行工具集入口
setting.py网站配置文件:包括应用、中间件、数据库、静态目录、等各种配置
wsgi.py是python服务器网关接口
urls决定Url被访问时那个程序(函数)响应

启动Django程序

Django是很多应用的集合,所以他的扩展和修改就很容易,实现需要的功能只需要添加相应的应用即可。
首先运行测试一下
python manage.py runserver
然后在浏览器中输入http://127.0.0.1:8000/
Django开发博客-(1)Django简介
图2 Django程序

其中127.0.0.1为本地地址,8000为端口号
现在是只能本机访问,可以通过以下设置让任意的人访问我的网站
λ python manage.py runserver 0.0.0.0:9090 端口号9090,使用0.0.0.0代表可以让任意人访问
最终访问的链接就是http://127.0.0.1:9090/

输入python manage.py可以查看所有的可以用命令

Type 'manage.py help <subcommand>' for help on a specific subcommand.

Available subcommands:

[auth]
changepassword
createsuperuser

[contenttypes]
remove_stale_contenttypes

[django]
check
compilemessages
createcachetable
dbshell
diffsettings
dumpdata
flush
inspectdb
loaddata
makemessages
makemigrations //开始数据迁移相关
migrate //开始数据迁移相关
sendtestemail
shell
showmigrations
sqlflush
sqlmigrate
sqlsequencereset
squashmigrations
startapp //启动一个应用
startproject //创建一个工程
test
testserver

[sessions]
clearsessions

[staticfiles]
collectstatic
findstatic
runserver

第一个应用

让页面显示Hello Blog!
python manage.py startapp myblog 创建一个应用
首先查看一下目录结构
Django开发博客-(1)Django简介
图3 目录结构

从上到下讲解应用的目录
admi是Django自带的一个功能强大的自动化数据管理界面,功能很强大,详细会在后面介绍
apps不知道
models是和数据库有关,详细会在后面介绍
test是测试相关
migration也是和数据库相关

通过上一个命令行代码创建了一个应用,然后将应用添加到Django中,步骤如下:

  • 创建一个响应
    在views.py中增加以下代码
def helloBlog(request):
return HttpResponse('hello blog!')
  • 随后将响应添加到urls中
from django.conf.urls import url
from django.contrib import admin
import myblog.views as mv

urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^blog/$', mv.helloBlog)
]

可知使用127.0.0.1:8000/blog/可以访问到该响应,随后该响应显示一个字符串。
需要特别注意r’^blog/$’正则表达式一定要加/,因为默认urls是有一个/,否则匹配失败。

  • 最后将应用添加到settings中
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog',
]
  • 运行程序python manage.py runserver
    Django开发博客-(1)Django简介
    图4 运行程序结果

其中urls还有一种配置方法,在urls.py文件的注释中可以看到:

Including another URLconf
1. Import the include() function: from django.conf.urls import url, include
2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls'))

此时修改urls.py

from django.conf.urls import url, include
from django.contrib import admin

urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^blog/$', include('myblog.urls'))
]

随后在myblog中创建一个urls.py文件
加入以下代码

from django.conf.urls import url
from . import views

urlpatterns = [
url(r'^$', views.helloBlog)
]

运行之后可以正常显示 hello blog!