Django是什么?
它是一个基于python的高级web开发框架、能够高效快速开发、高度集成、免费开源。
上网流程
首先简介一下日常使用浏览器的上网流程
图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/
图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 创建一个应用
首先查看一下目录结构
图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
图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!