无名商城论坛

搜索
查看: 294|回复: 0

[其他技术] 【HC】Django基础——快速搭建Django项目

[复制链接]

1万

主题

1万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
32464
发表于 2022-5-8 18:34:44 | 显示全部楼层 |阅读模式

这里小悠
配置及环境:Mac Os + Python3.6.2

一、创建一个Django项目
1.使用虚拟环境

#快速创建虚拟环境
python -m venv prjvenv
#激活虚拟环境
source prjvenv/bin/activate

2.创建项目

#安装django
pip install django
#创建项目
django-admin startproject myblog
3.django设置

myblog/settings.py文件
TIME_ZONE='Asia/Shanghai'
4.数据库迁移

python manage.py migrate
5.启动

python manage.py runserver
二、视图和URL配置
myblog/views.py文件
from django.http import HttpResponse

#最简单视图
def hello(request):
    return HttpResponse("Hello world")

#带参数的视图
def hours_ahead(request, offset):
       try:
           offset = int(offset)
       except ValueError:
           raise Http404()
       dt = datetime.datetime.now() + datetime.timedelta(hours=offset)
       html = "In %s hour(s), it will be  %s." % (offset, dt)
       return HttpResponse(html)

myblog/urls.py 文件

from django.conf.urls import url
from django.contrib import admin
from myblog.views import hello
from mysite.views import hours_ahead

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^hello/$',hello),
    url(r'^time/plus/(\d{1,2})/$', hours_ahead),
]
三、使用Django模板
1.模板目录配置

myblog/settings.py文件
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': ['app1/templates','app2/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',
            ],
        },
    },
]

如果想在项目根目录中放一些主模板(例如在 mysite/templates 目录中),需要像这样设定 DIRS:
'DIRS': [os.path.join(BASE_DIR, 'templates')],
2.视图函数
myblog/templates/base.html文件
from django.shortcuts import render
import datetime

def current_datetime(request):
    now = datetime.datetime.now()
    return render(request, 'current_datetime.html', {'current_date': now})
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表