首页 > 其他分享 >Django的项目框架搭建

Django的项目框架搭建

时间:2023-06-11 16:33:40浏览次数:45  
标签:myapp 框架 name django context path Django 模板 搭建

1.1 创建项目project,创建应用myapp

#创建项目框架tpdemo
django-admin startproject tpdemo

cd project

#在项目中创建一个应用
python manage.py startapp myapp

#创建模板目录
mkdir templates
mkdir templates/myapp

如图所示
image

1.2 编辑tpdemo/tpdemo/sittings.py文件,配置数据库连接

#配置自己的服务器地址
ALLOWED_HOSTS = ['*']

#添加自己的应用myapp
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'myapp',  #创建的myapp应用
]

#配置模板路径信息
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [OS.PATH.JOIN(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',
            ],
        },
    },
]

#MySQL数据库连接配置
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'mytest',
        'USER': 'root',
        'PASSWORD': '',
        'HOST': 'localhost',
        'PORT': '3306',
    }
}

1.3 Django使用MySQL数据库需要加载MySQLdb模块,需要安装mysqlclient

pip install mysqlclient

1.4 编写项目主路由urls配置,配置对myapp应用路由的访问连接配置,tpdemo/tpdemo/urls.py

from django.contrib import admin
from django.urls import path,include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('myapp.urls')),
]

1.5 配置当前应用myapp的路由配置

  • 在myapp的应用目录下创建一个路由文件urls.py,注意文件编码为utf-8
  • 编辑应用中的路由配置文件:tpdemo/myapp/urls.py,内容如下:
#myapp应用中的自定义二级路由配置
from django.urls import path
from . import views

urlpatterns = [
    path('', views.index,name="index"), #添加一个path


	#后面做测试用的可不用添加
    #模板语法测试路由
    path('demo1', views.demo1,name="demo1"),
    #模板继承测试路由
    path('demo2', views.demo2,name="demo2"),

    # 城市级联操作
    path('showdistrict/', views.showdistrict, name='showdistrict'), #加载网页
    path('district/<int:upid>', views.district, name='district'),  #Ajax加载城市信息
]

1.6 编写视图tpdemo/myapp/views.py

from django.shortcuts import render
from django.http import HttpResponse,JsonResponse
from datetime import datetime
from myapp.models import District
# Create your views here.

def index(request):
	return render(request,"myapp/index.html")  #配置一个视图,让使用的路由能够通过该视图跳到myapp/index.html里面


#后续的测试可不用管
def demo1(request):
	'''模板的语法'''
	context={}
	context['name']="ZhangSan"
	context['a'] = [10,20,30]
	context['stu'] = {"name":"lisi","age":20}
	data=[
		{"name":"张翠山","sex":1,"age":40,'state':0},
		{"name":"殷素素","sex":0,"age":38,'state':2},
		{"name":"张无忌","sex":1,"age":20,'state':1},
		{"name":"赵敏","sex":0,"age":18,'state':1},
	]
	context['dlist']=data
	context['time'] = datetime.now
	context['m1']=100
	context['m2']=20
	return render(request,"myapp/demo1.html",context)

def demo2(request):
	'''模板继承'''
	return render(request,"myapp/demo2.html")

# 加载城市级联信息操作模板
def showdistrict(request):
    return render(request,"myapp/district.html")

#加载对应的城市信息函数,返回json数据格式
def district(request,upid=0):
	dlist = District.objects.filter(upid=upid)
	mylist = []
	for ob in dlist:
		mylist.append({'id':ob.id,'name':ob.name})
	return JsonResponse({'data':mylist})

1.7 定义模板并编写模板tpdemo/templates/myapp/index.html

使用模板可以将数据库中的数据渲染到页面上

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Django框架的Template模板层</title>
</head>
<body>
    <h2>Django框架的Template模板层</h2>
	<ul>
		<li><a href="{% url 'demo1' %}">1.模板的语法 </a></li>
		<li><a href="{% url 'demo2' %}">2.模板的继承 </a></li>
		<li><a href="{% url 'showdistrict' %}">3.Ajax实战--城市信息级联操作 </a></li>
	</ul>
</body>
</html>

1.8 启动服务,通过浏览器测试效果

python manage.py runserver 0.0.0.0:8000

标签:myapp,框架,name,django,context,path,Django,模板,搭建
From: https://www.cnblogs.com/Pluto-Love-Learn/p/17473130.html

相关文章

  • [OpenGL]环境搭建以及OpenGL初识
    想往游戏行业发展的话,经常被提及到的就是OpenGL和DirectX,这两者听起来感觉是一门挺高深的技术,今天我也开始摸索学习OpenGL,那么OpenGL到底是什么?它和DirectX有什么区别和联系?OpenGL初识OpenGL只是一套图形函数库DirectX包含图形、声音、输入、网络等模块。但就图形而论,DirectX的图形......
  • Vue_Django 登录注册+图书管理系统
    Vue前端注册页面点击查看代码<template><divclass="register"><el-row:gutter="20"><el-col:span="12":offset="6"><divclass="grid-contentbg-purple">&......
  • Laravel 框架使用外部的js、css等文件
    Laravel框架使用外部的js、css等文件阅读有道云笔记https://note.youdao.com/s/d1ZQ9AC8Laravel项目的web虚拟主机指定的目录(即网址的根目录),项目的入口文件笔系统的静态资源目录(css、img、js、uploads)后期使用的外部静态文件都需要放到Public目录下,图中所示,可以想像成views......
  • 图床搭建
    简介图床(ImageHostingService)是一种在线服务,用于存储和托管图像。它允许用户将图像上传到服务器,并生成一个可供访问的唯一链接。这些链接可以在需要时在网页、论坛、社交媒体或其他地方共享图像。图床服务通常提供以下功能和优势:存储和托管图像:图床服务提供了存储和托管图像......
  • Django3中分组查询的一个坑
    最近在学习django的分组查询,发现使用通常的values加annotate方法,获取不到我想要的结果,后来通过查询官方文档得到答案一、问题描述1.1模型fromdjango.dbimportmodels#Createyourmodelshere.classGoods(models.Model):g_name=models.CharField(max_length=......
  • hexo gitee搭建博客问题
    下载hexonpminstall-ghexo-cli出现Error:EPERM:operationnotpermitted错误删除C:\Users{你的用户文件夹}/目录中的.npmrc文件,一般为隐藏以管理员身份运行打开cmd下载依赖Error:EPERM:operationnotpermitted,open'D:\nodejs\soft\node_cache_cacache\tmp......
  • Django的staticfiles库
    staticfiles库是Django提供的一个用于管理静态文件的库,它提供了一些工具和函数来帮助开发者在Django应用程序中管理和提供静态文件服务。在Django应用程序中,静态文件通常包括CSS样式文件、JavaScript脚本文件、图像文件以及其他一些资源文件。这些静态文件通常需要被服......
  • 玩转Google开源C++单元测试框架Google Test系列(gtest)(总)
    前段时间学习和了解了下Google的开源C++单元测试框架GoogleTest,简称gtest,非常的不错。我们原来使用的是自己实现的一套单元测试框架,在使用过程中,发现越来越多使用不便之处,而这样不便之处,gtest恰恰很好的解决了。其实gtest本身的实现并不复杂,我们完全可以模仿gtest,不断的完善我们......
  • django
    1常用指令pipinstalldjango-ihttps://pypi.douban.com/simple/#使用豆瓣镜像安装djangodjango-adminstartprojectmysite#创建个人项目pythonmanage.pyrunserver#启动项目pythonmanage.pystartapppolls#创建投票应用pythonmanage.pymakemigrations#......
  • Hexo+github搭建个人博客
    所以呢一直想自己搭一个有自己个性域名的博客。。昨晚花了一点时间用Hexo+github搭好了,地址是https://xwj-scarf.github.io/逼格瞬间上了一个档次有没有。。前期工作下载node.js和git,安装hexo在nodejs.org/en/ 上下载安装Node.js,一路下一步就好了下载完成后在cmd输入node-v,就能......