Django初认识

本文介绍如何使用Django框架搭建一个简单的Hello World应用,包括环境搭建、视图与URL配置、模板使用及数据库连接等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

工作中用到的web框架是web.py,虽然本人认为是个非常好的框架,可惜知名度不高(作者英年早逝啊),python圈里知名度最高的框架是Django,作为python web开发人员还是要瞻仰一下的。

#安装命令
pip install Django

#检查是否安装成功
#输入以下命令进行检查:
>>> import django
>>> django.get_version()
#国际惯例安装好后来个hello world项目
#真是神奇 会自动新建个完整的目录
django-admin.py startproject HelloWorld

视图和 URL 配置

#在先前创建的 HelloWorld 目录下的 HelloWorld 目录新建一个 view.py 文件,并输入代码:
#HelloWorld/HelloWorld/view.py 文件代码:
from django.http import HttpResponse

def hello(request):
    return HttpResponse("Hello world ! ")

接着,绑定 URL 与视图函数。打开 urls.py 文件,删除原来代码,写代码

from django.conf.urls import url

from . import view

urlpatterns = [
    url(r'^$', view.hello),
    #或者 url(r'^hello$', view.hello),
]

目录如下

$ tree
.
|-- HelloWorld
|   |-- __init__.py
|   |-- __init__.pyc
|   |-- settings.py
|   |-- settings.pyc
|   |-- urls.py              # url 配置
|   |-- urls.pyc
|   |-- view.py              # 添加的视图文件
|   |-- view.pyc             # 编译后的视图文件
|   |-- wsgi.py
|   `-- wsgi.pyc
`-- manage.py
#启动命令
python manage.py runserver 端口

Django 模板
为了符合MVC,需要Django 模板的应用,模板是一个文本,用于分离文档的表现形式和内容。
在 HelloWorld 目录底下创建 templates 目录并建立 hello.html文件

HelloWorld/
|-- HelloWorld
|   |-- __init__.py
|   |-- __init__.pyc
|   |-- settings.py
|   |-- settings.pyc
|   |-- urls.py
|   |-- urls.pyc
|   |-- view.py
|   |-- view.pyc
|   |-- wsgi.py
|   `-- wsgi.pyc
|-- manage.py
`-- templates
    `-- hello.html
 ```
 ```
 #HelloWorld/templates/hello.html 文件代码:
    <h1>{{ hello }}</h1>
#接下来我们需要向Django说明模板文件的路径,修改HelloWorld/settings.py,修改 TEMPLATES 中的 #DIRS 为 [BASE_DIR+"/templates",],如下所示:
#HelloWorld/HelloWorld/settings.py 文件代码:
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [BASE_DIR+"/templates",],       # 修改位置
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

#修改 view.py,增加一个新的对象,用于向模板提交数据:
#HelloWorld/HelloWorld/view.py 文件代码:
# -*- coding: utf-8 -*-
#from django.http import HttpResponse
from django.shortcuts import render

def hello(request):
    context = {}
    context['hello'] = 'Hello World!'
    return render(request, 'hello.html', context)

模板继承


//模板可以用继承的方式来实现复用。
//接下来我们先创建之前项目的 templates 目录中添加 base.html 文件,代码如下:
//HelloWorld/templates/base.html 文件代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body>
    <h1>Hello World!</h1>
    <p>菜鸟教程 Django 测试。</p>
    {% block mainbody %}
       <p>original</p>
    {% endblock %}
</body>
</html>
 #以上代码中,名为 mainbody 的 block 标签是可以被继承者们替换掉的部分。
 #所有的 {% block %} 标签告诉模板引擎,子模板可以重载这些部分。
 #hello.html 中继承 base.html,并替换特定 block,hello.html 修改后的代码如下:
 #HelloWorld/templates/hello.html 文件代码:
{% extends "base.html" %}

{% block mainbody %}<p>继承了 base.html 文件</p>
{% endblock %}

Django 模型

Django默认是SQLite的,现在改为mysql
先安装驱动 pip install mysqlclient
数据库配置

#我们在项目的 settings.py 文件中找到 DATABASES 配置项,将其信息修改为:
#HelloWorld/HelloWorld/settings.py: 文件代码:
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',  # 或者使用 mysql.connector.django
        'NAME': 'test',
        'USER': 'test',
        'PASSWORD': 'test123',
        'HOST':'localhost',
        'PORT':'3306',
    }
}

Django规定,如果要使用模型,必须要创建一个app。我们使用以下命令创建一个 TestModel 的 app:
django-admin.py startapp TestModel

HelloWorld
|-- TestModel
|   |-- __init__.py
|   |-- admin.py
|   |-- models.py
|   |-- tests.py
|   `-- views.py

# HelloWorld/TestModel/models.py: 文件代码:
# models.py
from django.db import models

class Test(models.Model):
    name = models.CharField(max_length=20)

#接下来在settings.py中找到INSTALLED_APPS这一项,如下:
INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'TestModel',               # 添加此项
)

#在命令行中运行:
python manage.py migrate   # 创建表结构
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值