浅谈Django框架

  • 一、Django简介
  • 二、Django的特点
  • 三、Django项目目录
  • 四、Django基本命令
  • 五、Django表单


一、Django简介

  • Python下有多款不同的 Web 框架,Django是最有代表性的一种。许多成功的网站和APP都基于Django
  • Django是一个开源的Web应用框架,由Python写成。
  • Django采用了MVC的软件设计模式,即模型M,视图V和控制器C。

二、Django的特点

  1. 强大的数据库功能:用python的类继承,几行代码就可以拥有一个动态的数据库操作API,如果需要也能执行SQL语句。
  2. 自带的强大的后台功能:几行代码就让网站拥有一个强大的后台,轻松管理内容。
  3. 优雅的网址:用正则匹配网址,传递到对应函数。
  4. 模板系统:强大,易扩展的模板系统,设计简易,代码和样式分开设计,更易管理。
  5. 缓存系统:与memcached或其它缓存系统联用,表现更出色,加载速度更快。
  6. 国际化:完全支持多语言应用,允许你定义翻译的字符,轻松翻译成不同国家的语言。

三、Django项目目录

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

四、Django基本命令

  1. 新建一个项目

django-admin startproject project-name

  1. 新建一个APP

python manage.py startapp app-name

django-admin.py startapp app-name

  1. 启动服务器

python manage.py runserver 0.0.0.0:8000

python manage.py runserver

五、Django表单

1. Get方法

(1)创建一个 search.py 文件,用于接收用户的请求:

[python] view plain copy
from django.http import HttpResponse  
from django.shortcuts import render_to_response  
# 表单  
def search_form(request):  
    return render_to_response('search_form.html')  
    # 接收请求数据  
    def search(request):  
    request.encoding='utf-8'  
    if 'q' in request.GET:  
        message = '搜索的内容为: ' + request.GET['q'].encode('utf-8')  
    else:  
        message = '提交了空表单'  
    return HttpResponse(message)

(2)在templates中添加 search_form.html 表单:

[html] view plain copy
<!DOCTYPE html>  
<html>  
    <head>  
        <meta charset="utf-8">  
        <title></title>  
    </head>  
    <body>  
        <form action="/search" method="get">  
            <input type="text" name="q">  
            <input type="submit" value="搜索">  
        </form>  
    </body>  
</html>

(3)修改urls.py:

[python] view plain copy
from django.conf.urls import url  
from . import view,database,search  
urlpatterns = [  
    url(r'^helloWorld$', view.helloWorld),  
    url(r'^database$', database.database),  
    url(r'^search-form$', search.search_form),  
    url(r'^search$', search.search)  
]

(4)启动服务器,并在浏览器访问:127.0.0.1:8000/search_form。

2. Post方法
(1)在templates中添加 post.html 表单:

[python] view plain copy
<!DOCTYPE html>  
<html>  
    <head>  
        <meta charset="utf-8">  
        <title></title>  
    </head>  
    <body>  
        <form action="/search-post" method="post">  
            {% csrf_token %}  
            <input type="text" name="q">  
            <input type="submit" value="搜索">  
        </form>  
        <p>{{ rlt }}</p>  
    </body>  
</html>

(2)新建 search2.py 文件并使用 search_post 函数来处理 POST 请求:

[python] view plain copy
from django.shortcuts import render  
from django.views.decorators import csrf  
# 接收POST请求数据  
def search_post(request):  
    ctx ={}  
    if request.POST:  
        ctx['rlt'] = request.POST['q']  
    return render(request, "post.html", ctx)

(3)修改urls.py:

[python] view plain copy
from django.conf.urls import url  
from . import view,database,search  
urlpatterns = [  
    url(r'^helloWorld$', view.helloWorld),  
    url(r'^database$', database.database),  
    url(r'^search-form$', search.search_form),  
    url(r'^search$', search.search)  
    url(r'^search-post$', search2.search_post)  
]

(4)启动服务器,并在浏览器访问:127.0.0.1:8000/search_post。