您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# 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
# 使用pip安装最新稳定版
pip install django
# 验证安装
python -m django --version
python -m venv myenv
source myenv/bin/activate # Linux/Mac
myenv\Scripts\activate # Windows
django-admin startproject myproject
这会生成以下目录结构:
myproject/
manage.py
myproject/
__init__.py
settings.py
urls.py
asgi.py
wsgi.py
python manage.py runserver
访问 http://127.0.0.1:8000 看到欢迎页面即表示成功。
修改settings.py
关键配置:
# 时区设置
TIME_ZONE = 'Asia/Shanghai'
USE_TZ = False
# 语言设置
LANGUAGE_CODE = 'zh-hans'
# 允许的主机(开发时可设为*)
ALLOWED_HOSTS = ['*']
文件/目录 | 作用 |
---|---|
manage.py | 项目管理脚本,用于运行命令 |
myproject/ | 主项目目录 |
├── init.py | 标识目录为Python包 |
├── settings.py | 项目全局配置(数据库、应用、中间件等) |
├── urls.py | 主URL路由配置 |
├── asgi.py | ASGI服务器配置(异步支持) |
└── wsgi.py | WSGI服务器配置(传统部署) |
# urls.py示例
from django.urls import path
from . import views
urlpatterns = [
path('hello/', views.hello_view),
]
# views.py基础示例
from django.http import HttpResponse
def hello_view(request):
return HttpResponse("Hello Django!")
# 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()
python manage.py startapp myapp
在settings.py
中添加:
INSTALLED_APPS = [
...,
'myapp',
]
myapp/
migrations/ # 数据库迁移文件
__init__.py
admin.py # 后台管理配置
apps.py # 应用配置
models.py # 数据模型
tests.py # 测试用例
views.py # 视图函数
# 进阶模型示例
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
# 类视图示例
from django.views import View
class ProductListView(View):
def get(self, request):
products = Product.objects.all()
return render(request, 'product_list.html', {'products': products})
<!-- templates/product_list.html -->
{% for product in products %}
<div>
<h3>{{ product.name }}</h3>
<p>价格: ¥{{ product.price }}</p>
<p>库存: {{ product.stock }}</p>
</div>
{% endfor %}
# myapp/urls.py
from django.urls import path
from .views import ProductListView
urlpatterns = [
path('products/', ProductListView.as_view(), name='product-list'),
]
python manage.py createsuperuser
# 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',)
class ProductAdmin(admin.ModelAdmin):
list_filter = ('price',)
fieldsets = (
('基本信息', {'fields': ('name',)}),
('财务信息', {'fields': ('price',)}),
)
访问 http://127.0.0.1:8000/admin 即可管理数据。
# 首次迁移
python manage.py makemigrations
python manage.py migrate
# 解决迁移冲突
python manage.py migrate --fake
确保settings.py
配置正确:
STATIC_URL = '/static/'
STATICFILES_DIRS = [BASE_DIR / 'static']
检查: - URL配置是否正确 - 视图函数是否存在 - 模板路径是否正确
在表单模板中添加:
{% csrf_token %}
本文涵盖了Django开发的完整基础流程:
下一步学习建议: - 用户认证系统(django.contrib.auth) - 表单处理与验证 - REST API开发(DRF框架) - 部署与性能优化
Django官方文档始终是最佳学习资源:https://docs.djangoproject.com/
”`
注:本文实际约3000字,可通过以下方式扩展: 1. 增加各部分的详细代码示例 2. 添加更多实际案例 3. 深入解释ORM高级用法 4. 包含测试和调试技巧 5. 添加部署相关说明
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。