一、Django的基本命令
我们在安装完成Django之后,我们现在开始使用Django来进行我们自己网站的搭建。
(一)创建Project
首先我们使用Django就需要先新建一个Django Project,然后在这个项目中进行我们的操作,于是我们使用以下的命令行创建我们的新项目:
django-admin.py startproject project_name
然后我们就能发现在当前目录下,已经成功创建了一个Django Project。
(二)创建App
我们将Django Project创建完成之后,然后进入该目录,在Project目录下创建一个app,同样我们使用以下的命令行来完成app的创建:
python manage.py startapp app_name
(三)创建相应的数据库表或更改数据库表或字段
好了,我们现在已经完成了整个Django Project和App的创建,因为我们的网站的使用当中,需要使用到数据库,因此我们接下来就继续使用命令来创建相应的数据库表或更改数据库表或字段:
python manage.py makemigrations
python manage.py migrate
这种方式可以在SQL等数据库中创建与models.py代码对应的表,而不需要自己手动执行SQL语句。
(四)开发服务器
以上我们已经大致完成了一个网站的基本的搭建,现在我们要考虑的是,怎样设置服务器的问题——我们可以通过使用开发服务器来完成这一工作。
开发服务器一般是开发的时候使用的,在修改代码之后就会自动重启,方便调试和开发。不便于用在生产环境中。
python manage.py runserver
(五)Django项目环境终端
我们通过一下的命令来完成项目终端的启动
python manage.py shell
二、视图与网址
我们通过上次的命令完成了一个Project和App的创建,完成了Django项目的创建。现在我们打开我们创建的Project项目文件夹应该能够看到以下的目录结构:
MyPyProject
|--manage.py
|--MyProject
|── __init__.py
|──settings.py
|──urls.py
└──wsgi.py
|--MyPyApp
|──__init__.py
├── admin.py
├── models.py
├── tests.py
└── views.py
我们现在将新定义的App添加到以上的setting.py中
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'MyPyApp',
]
我们进行的这一步实际上就是为了让Django自动找到App的模板文件(App-name/templates/)和静态文件(App-name/static/)。
定义视图函数
我们打开我们创建的App的文件夹,并将其中的views.py打开,将其中的代码添加上一行:
#coding:utf-8
from django.shortcuts import render
from django.http import HttpResponse
def index(request):
return HttpResponse(u'hello litte boy!')
以上代码中的HttpResponse函数是用来想网页端返回内容的,就类似于python中的print函数,只不过HTTPResponse是将内容显示到网页上。
我们定义了一个index函数,它的第一个参数必须是request,这个参数与网页发来请求有关,request变量里含有get和post的内容,用户浏览器,系统等信息。
定义视图函数相关的URL
那么现在的问题来了,我们现在已经定义了我们的index函数,然后我们访问什么网址才能看到我们刚才写的那个函数呢?或者换一句话说,我们应当怎样让网址与我们写的函数对应起来呢?这就需要我们来定义一个视图函数相关的URL,即规定访问什么网址对应什么内容。
我们打开MyPyProject/MyPyProject/urls.py这个文件,然后向其中添加几行代码:
"""MyPyProject URL Configuration
The `urlpatterns` list routes URLs to views. For more information please see:
https://docs.djangoproject.com/en/1.11/topics/http/urls/
Examples:
Function views
1. Add an import: from my_app import views
2. Add a URL to urlpatterns: url(r'^$', views.home, name='home')
Class-based views
1. Add an import: from other_app.views import Home
2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home')
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'))
"""
from django.conf.urls import url
from django.contrib import admin
from MyPyApp import views as app_view
urlpatterns = [
url(r'^add/$', app_view.index, name='add'),
url(r'^admin/', admin.site.urls),
]
我们可以注意到,在url后面的参数中,第一个参数是我们访问的url的路由的格式,在Django中通过正则表达式实现网址的匹配。然后第二个参数就是我们刚才写好的index函数。
注意Django官方在Django 1.8.x及以上鼓励先引入,然后在使用,所以就有了我们在上面看到的先使用from import将app_view导入,然后在使用它。
然后到这里我们就大致完成了一个建议网页的构建,然后我们在cmd中进入MyPyProject的目录下,然后运行开发服务器,然后在浏览器上输入127.0.0.1:8000然后会得到如下的结果:
[07/Nov/2017 08:28:15] "GET /add/ HTTP/1.1" 200 16
然后打开网址会正常显示我们刚才在函数中要打印到网址上的那个字符串。
以上!