djando 教程

本文是Django基础教程,涵盖了Django的特点,如强大的数据库功能、后台管理、优雅的URL和模板系统。教程还详细介绍了环境搭建、项目与应用创建、视图、URL、模板和模型的使用,以及Django后台和表单的创建。此外,还涉及了Django配置、静态文件和国际化支持等内容,适合初学者入门。
摘要由CSDN通过智能技术生成

Django基础教程

Django特点

强大的数据库功能

用python的类继承,几行代码就可以拥有一个丰富,动态的数据库操作接口(API),如果需要你也能执行SQL语句

自带的强大的后台功能

几行代码就让你的网站拥有一个强大的后台,轻松管理你的内容!

优雅的网址

用正则匹配网址,传递到对应函数,随意定义,如你所想!

模板系统

强大,易扩展的模板系统,设计简易,代码,样式分开设计,更容易管理。

缓存系统

与memcached或其它的缓存系统联用,更出色的表现,更快的加载速度。

国际化

完全支持多语言应用,允许你定义翻译的字符,轻松翻译成不同国家的语言。

Django常用模块

  1. urls.py:网址入口,关联到对应的views.py中的一个函数,访问网址就对应一个函数。
  2. views.py:处理用户发出的请求,从urls.py中对应过来,通过渲染templates中的网页可以来显示内容,比如登陆后的用户名,用户请求的数据,输出到网页。
  3. models.py:与数据库操作相关,存入或读取的数据时用到这个,当然用不到数据库的时候,你可以不使用。
  4. forms.py:表单,用户在浏览器上输入数据提交,对数据的验证工作及输入框的生成等工作,当然你可以不使用。
  5. templates文件夹:views.py中的函数渲染templates中的html模板,得到动态内容的网页,当然可以用缓存来提高速度。
  6. admin.py:后台,可以用很少量的代码就拥有一个强大的后台。
  7. settings.py:Django的设置,配置文件,比如DEBUG的开关,静态文件的位置等。

环境搭建

下载源码

https://www.djangoproject.com/download/中下载django的源码,如Django-1.11.tar.gz

安装

解压下载的文件,打开命令行(WIN+R键,打开运行,输入cmd,enter键),进入D:/Django-1.11/目录,执行`python setup.py install`命令(注意:要执行这个命令,必须要先把python安装,并且配置python路径的环境变量,这里我们讲的是django,就不再过多叙述了),然后就会自动安装了。

检查是否安装成功

在命令行上输入python,点击enter,进入python环境

>>> import django
>>> django.VERSION
(1, 11, 0, u'final', 1)
>>> django.get_version()
'1.11'

第一个django项目

新建一个django project

创建了一个名为myblog的项目

django-admin.py startproject mysite

运行后,我们会看到如下的目录样式:

mysite
├── manage.py
└── mysite
    ├── __init__.py
    ├── settings.py
    ├── urls.py
    └── wsgi.py

新建app

一般一个项目有多个app,当然通用的app也可以在多个项目中使用。
创建一个名为learn的app,注意:先要进入项目目录中(第一个mysite),cd mysite,然后执行下面语句,创建app。

python manage.py startapp learn

我们可以看到mysite中多了一个learn文件夹:

mysite
└── learn
|   ├── migrations
|   |   └── __init__.py
|   ├── __init__.py
|   ├── admin.py
|   ├── app.py
|   ├── models.py
|   ├── tests.py
|   └── views.py
├── manage.py
└── mysite

把新定义的app加到settings.py中的INSTALL——APPS中,修改mysite/mysite/settings.py

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',

    'learn',
)

目的:新建的app如果不加到INSTALL——APPS中的话,django就不能自动找到app中的模板文件(learn/templates/下的文件)和静态文件(learn/static/中的文件)。

定义视图函数(访问页面的内容)

打开learn/views.py,编写代码:

#coding:utf-8 
from django.http import HttpResponse

def index(request):
    return HttpResponse('Hello World!') #用来向浏览器返回内容

定义URL

打开mysite/mysite/urls.py,进行修改:

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

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^$', learn_views.index),
]

在命令行上运行python manage.py runserver,这样就打开了服务器,然后我们就可以通过浏览器访问了。

打开浏览器,输入http://127.0.0.1:8000/,就可以看到Hello World!
注意:如果是要在另一台电脑上访问,要用python manage.py ip:port的形式,比如监听所有ip:

python manage.py runserver 0.0.0.0:8000
#监听机器所有ip,8000端口,访问时用电脑的ip代替127.0.0.1

视图与网址进阶

GET方法获取参数

采用/add/?a=4&b=5这样的方式进行

1、修改learn/views.py文件

from django.shortcuts import render
from django.http import HttpResponse
def add(request):
    a=request.GET['a']
    b=request.GET['b']
    c=int(a)+int(b)
    return HttpResponse(str(c))

注:request.GET 类似于一个字典,更好的办法是用 request.GET.get(‘a’, 0) 当没有传递 a 的时候默认 a 为 0
2、修改mysite/urls.py文件

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

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^add/$', learn_views.add,name='add'),
]

打开网址:http://127.0.0.1:8000/add/?a=4&b=5,就可以看到网页上显示了一个9。

采用/add/3/4/这样的方式进行

1、修改learn/views.py文件,新定义一个add2函数

def add2(request,a,b):
    c=int(a)+int(b)
    return HttpResponse(str(c))

2、修改mysite/urls.py文件,加上:

url(r'^add/(\d+)/(\d+)/$', learn_views.add2, name='add2'),

正则表达式中:
\d 代表一个数字,
+ 代表一个或多个前面的字符,
写在一起 \d+ 就是一个或多个数字,用括号括起来的意思是保存为一个子组,每一个子组将作为一个参数,被 views.py 中的对应视图函数接收。

我们再访问:http://127.0.0.1:8000/add/4/5/,就可以看到和刚才一样的效果,但是现在网址更优雅了。

URL name详解

url(…,name=’add’)中name的作用:name可以用于在templates、models、views中得到对应的网址,相当于给网址取了一个名字,只要这个名字不变,地址变了也能通过名字获取到。

修改learn/views.py文件:

from django.shortcuts import render
def index(request):
    return render(request,'home.html') 

在learn中新建一个templates文件夹,在该文件夹中新建一个home.html文件,向其中写入:

<!DOCTYPE html>
<html>
<head>
    <title>首页</title>
</head>
<body>
    <a href="/add/4/5/">计算 4+5</a>
</body>
</html>

修改mysite/urls.py文件,加入:

url(r'^$', learn_views.index, name='home'),

运行服务器,访问:http://127.0.0.1:8000/就可以看到一个页面,页面上有一个链接计算 4+5

问题:这样会写死网址,会在改了网址(正则)后,很多地方都要修改。

解决:

reverse接收url中的name作为第一个参数,代码中可以通过reverse()获取对应的网址,

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值