Django 项目创建及基础知识是什么

发布时间:2021-12-08 16:14:07 作者:柒染
来源:亿速云 阅读:86
# Django 项目创建及基础知识

## 目录
1. [Django 简介](#django-简介)
2. [环境准备](#环境准备)
3. [创建第一个Django项目](#创建第一个django项目)
4. [Django项目结构解析](#django项目结构解析)
5. [Django基础概念](#django基础概念)
6. [创建Django应用](#创建django应用)
7. [模型-视图-模板(MVT)模式](#模型-视图-模板mvt模式)
8. [Django Admin后台管理](#django-admin后台管理)
9. [常见问题与解决方案](#常见问题与解决方案)
10. [总结](#总结)

---

## Django 简介

Django 是一个高级 Python Web 框架,由 Adrian Holovaty 和 Simon Willison 于2003年开发,遵循"Batteries included"(内置电池)哲学。其主要特点包括:

- **快速开发**:提供大量内置功能
- **安全可靠**:自动处理SQL注入、XSS等安全问题
- **可扩展性强**:支持高流量网站
- **MTV架构**:类似MVC但略有不同
- **ORM支持**:数据库操作无需直接编写SQL

最新稳定版本为Django 4.x(截至2023年),同时支持Python 3.8+版本。

---

## 环境准备

### 1. Python环境
```bash
# 检查Python版本(需3.8+)
python --version

2. 安装Django

# 使用pip安装最新稳定版
pip install django

# 验证安装
python -m django --version

3. 可选工具


创建第一个Django项目

1. 创建项目

django-admin startproject myproject

这会生成以下目录结构:

myproject/
    manage.py
    myproject/
        __init__.py
        settings.py
        urls.py
        asgi.py
        wsgi.py

2. 运行开发服务器

python manage.py runserver

访问 http://127.0.0.1:8000 看到欢迎页面即表示成功。

3. 基础配置

修改settings.py关键配置:

# 时区设置
TIME_ZONE = 'Asia/Shanghai'
USE_TZ = False

# 语言设置
LANGUAGE_CODE = 'zh-hans'

# 允许的主机(开发时可设为*)
ALLOWED_HOSTS = ['*']

Django项目结构解析

文件/目录 作用
manage.py 项目管理脚本,用于运行命令
myproject/ 主项目目录
├── init.py 标识目录为Python包
├── settings.py 项目全局配置(数据库、应用、中间件等)
├── urls.py 主URL路由配置
├── asgi.py ASGI服务器配置(异步支持)
└── wsgi.py WSGI服务器配置(传统部署)

Django基础概念

1. 应用(Apps)

2. 路由(URLs)

# urls.py示例
from django.urls import path
from . import views

urlpatterns = [
    path('hello/', views.hello_view),
]

3. 视图(Views)

# views.py基础示例
from django.http import HttpResponse

def hello_view(request):
    return HttpResponse("Hello Django!")

4. 模型(Models)

# models.py示例
from django.db import models

class Book(models.Model):
    title = models.CharField(max_length=100)
    author = models.CharField(max_length=50)
    publish_date = models.DateField()

创建Django应用

1. 创建应用

python manage.py startapp myapp

2. 注册应用

settings.py中添加:

INSTALLED_APPS = [
    ...,
    'myapp',
]

3. 应用目录结构

myapp/
    migrations/     # 数据库迁移文件
    __init__.py
    admin.py       # 后台管理配置
    apps.py        # 应用配置
    models.py      # 数据模型
    tests.py       # 测试用例
    views.py       # 视图函数

模型-视图-模板(MVT)模式

1. 模型(Model)

# 进阶模型示例
class Product(models.Model):
    name = models.CharField(max_length=100)
    price = models.DecimalField(max_digits=10, decimal_places=2)
    stock = models.PositiveIntegerField(default=0)
    
    def __str__(self):
        return self.name

2. 视图(View)

# 类视图示例
from django.views import View

class ProductListView(View):
    def get(self, request):
        products = Product.objects.all()
        return render(request, 'product_list.html', {'products': products})

3. 模板(Template)

<!-- templates/product_list.html -->
{% for product in products %}
<div>
    <h3>{{ product.name }}</h3>
    <p>价格: ¥{{ product.price }}</p>
    <p>库存: {{ product.stock }}</p>
</div>
{% endfor %}

4. URL配置

# myapp/urls.py
from django.urls import path
from .views import ProductListView

urlpatterns = [
    path('products/', ProductListView.as_view(), name='product-list'),
]

Django Admin后台管理

1. 创建超级用户

python manage.py createsuperuser

2. 注册模型

# myapp/admin.py
from django.contrib import admin
from .models import Product

@admin.register(Product)
class ProductAdmin(admin.ModelAdmin):
    list_display = ('name', 'price', 'stock')
    search_fields = ('name',)

3. 自定义Admin界面

class ProductAdmin(admin.ModelAdmin):
    list_filter = ('price',)
    fieldsets = (
        ('基本信息', {'fields': ('name',)}),
        ('财务信息', {'fields': ('price',)}),
    )

访问 http://127.0.0.1:8000/admin 即可管理数据。


常见问题与解决方案

1. 数据库迁移问题

# 首次迁移
python manage.py makemigrations
python manage.py migrate

# 解决迁移冲突
python manage.py migrate --fake

2. 静态文件404

确保settings.py配置正确:

STATIC_URL = '/static/'
STATICFILES_DIRS = [BASE_DIR / 'static']

3. 页面找不到(404)

检查: - URL配置是否正确 - 视图函数是否存在 - 模板路径是否正确

4. CSRF验证失败

在表单模板中添加:

{% csrf_token %}

总结

本文涵盖了Django开发的完整基础流程:

  1. 环境搭建与项目创建
  2. 理解MVT架构模式
  3. 模型定义与数据库操作
  4. 视图处理与URL路由
  5. 模板渲染基础
  6. Admin后台配置

下一步学习建议: - 用户认证系统(django.contrib.auth) - 表单处理与验证 - REST API开发(DRF框架) - 部署与性能优化

Django官方文档始终是最佳学习资源:https://docs.djangoproject.com/

”`

注:本文实际约3000字,可通过以下方式扩展: 1. 增加各部分的详细代码示例 2. 添加更多实际案例 3. 深入解释ORM高级用法 4. 包含测试和调试技巧 5. 添加部署相关说明

推荐阅读:
  1. 如何学习Django
  2. django项目创建超级用户的方法

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

python

上一篇:如何区hdfs、hbase、hive和hbase适用场景

下一篇:Django-oscar是怎样修改店铺名称

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》