系统: ubunt 22.04.4 LTS
1、确保python版本为3.10以上
python3 -V
2、创建虚拟环境
python3 -m venv test_venv
cd test_venv
source bin/activate # 进入虚环境
pip -V # 确认虚环境下pip可用
3、安装django
python -m pip install --upgrade pip
pip install django
4、创建django项目
django-admin help # 可以查看管理工具的用法
djang-admin startproject test_project # 创建django项目test_project
5、创建应用
这将会创建一个基本的应用结构,包括models.py、views.py和urls.py等文件
cd test_project
django-admin startapp test_app
# vim setting,与项目的安全和功能相关
INSTALLED_APPS中添加 "test_app"
DEBUG = TRUE # 开发环境可以使用调试模式,生产环境建议置为FALSE
ALLOW_HOSTS = [] # 添加白名单
MIDDLEWARE = […] # 默认中间件,可不调整
TEMPLATES = […] # 模板
DATABASES = {} # 数据库连接设置,包含指定引擎
STATIC_URL = 'static/' # 静态资源指定
补充释义:
# 静态文件的 URL 路径
STATIC_URL = '/static/'
# “/static/”是域名的根路径下,为绝对路径;“static/” 为相对路径,
# 例如:在某个特定的路径下(比如 http://example.com/somepath/)使用 {% static %} 模板标签,那么静态文件将会通过 http://example.com/somepath/static/ 来访问
#
# 静态文件的文件系统路径
STATICFILES_DIRS = [
BASE_DIR / "static", # 这将对应项目根目录下的 static 文件夹
# 如果有其他应用特定的静态文件目录,也可以在这里添加
# 例如:BASE_DIR / "my_app" / "static",
]
# 当你运行 python manage.py collectstatic 命令时, 所有静态文件都会被收集到这个目录下
STATIC_ROOT = BASE_DIR / "staticfiles" # 用于生产环境
DEFAULT_AUTO_FIELD = '…'
# vim views.py # 配置视图
将需要执行的操作渲染成UI界面
使用步骤:
1. 导入所需的模块和模型
首先,你需要导入 Django 视图相关的模块(包含自定义模块)以及可能需要处理的数据模型(包含自定义模型)。
# eg:
查看代码
from django.http import HttpResponse
from .models import MyModel
查看代码
def my_view(request):
# 视图逻辑
return HttpResponse("Hello, world!")
查看代码
from django.shortcuts import render
def my_view(request):
context = {'message': 'Hello, world!'}
return render(request, 'my_template.html', context)
# 这里,my_template.html 是模板的文件名,context 是一个字典,包含了传递给模板的数据。
查看代码
from django.shortcuts import render, redirect
def my_form_view(request):
if request.method == 'POST':
# 处理表单数据
form = MyForm(request.POST)
if form.is_valid():
# 处理表单数据
form.save()
return redirect('success_url')
else:
form = MyForm()
return render(request, 'form_template.html', {'form': form})
查看代码
from django.views.generic import ListView, DetailView
class MyListView(ListView):
model = MyModel
template_name = 'my_list_template.html'
class MyDetailView(DetailView):
model = MyModel
template_name = 'my_detail_template.html'
查看代码
from django.shortcuts import render, HttpResponse
def index(request):
return HttpResponse("Welcome to the index page.")
def about(request):
context = {'about_us': 'We are a Django tutorial website.'}
return render(request, 'about.html', context)
查看代码
from django.urls import path
from . import views
urlpatterns = [
path('my_view/', views.my_view, name='my_view'),
# 参数分别为: 'URL', '视图函数', '视图名(即路由的最末端的字段)'
# ... 其他 URL 模式
]
查看代码
from django.db import models
class Author(models.Model):
name = models.CharField(max_length=100)
age = models.IntegerField()
class Book(models.Model):
title = models.CharField(max_length=200)
authors = models.ManyToManyField(Author)
published_date = models.DateField()
isbn = models.CharField(max_length=13)
查看代码
class Book(models.Model):
# 字段定义...
class Meta:
db_table = 'my_books' # 指定数据库表名
ordering = ['title'] # 指定默认排序字段
查看代码
class Author(models.Model):
# 字段定义...
def get_books(self):
return self.book_set.all() # 获取所有相关书籍
标签:models,django5,py,request,视图,django,笔记,基础知识,my From: https://www.cnblogs.com/gaogaoing/p/18350735