Django学习笔记

1. 建立project

django-admin startproject mysite

自动生成项目所需的文件夹和文件
由2层目录组成根目录mysite+子目录mysite

mysite/ #根目录,重命名对项目运行没有影响
    manage.py #运行web,或者使用数据库的API等都通过这个文件
    mysite/ #包含实际项目的目录(python包),引用内部模块时的名字,比如mysite.urls
        __init__.py #python包的标识
        settings.py #设置默认配置,最基础的比如设置后台使用的web服务器和数据库参数
        urls.py #路由设置,根据url匹配相应的view
        asgi.py #暂时没用到
        wsgi.py #暂时没用到

2. 创建应用

python manage.py startapp polls

创建后会生成应用的目录

polls/
    __init__.py
    admin.py #管理页面相关设置
    apps.py
    migrations/ #数据库配置文件存放目录
        __init__.py
    models.py #建立数据库表项
    tests.py #测试编码
    views.py #如何展示页面(页面逻辑)

3. 模型

3.1 创建

  • 也就是创建数据库表(Django无法创建数据库,需要先自己创建然后在setting.py中进行相关的配置)
  • 在models.py中编写chart和column的定义
    Django中models对应数据库的chart,field对应数据库的column
from django.db import models
from django.utils import timezone
from datetime import date

# Create your models here.
class Menu(models.Model):
    date=models.DateField("日期")
    dishes=models.CharField(max_length=20)
    def __str__(self):
        return self.dishes+str(self.date)
class Order(models.Model):
    dishes=models.ForeignKey(Menu,on_delete=models.CASCADE)
    user=models.CharField(max_length=20)
    order_time=models.DateTimeField("订餐时间",auto_now=True)

3.2 激活并生成配置

  • 需要先让项目识别这个应用
    在settings.py中添加app
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'polls.apps.PollsConfig' #新添加的,对应polls\apps.py中定义的类
]
  • 在terminal中运行指令创建数据库配置文件,根据model.py进行修改,并生成polls\migrations\0001_initial.py文件(完整的Django数据库配置指令)
python manage.py makemigrations orders
python manage.py sqlmigrate orders 0001 #可以用来查看对应的SQL命令

3.3 执行配置

python manage.py migrate

4. URL

在app文件夹下新建urls.py
根目录mysite\mysite\url.py需增加以下配置

path('orders/',include('orders.urls')) #include指向实际urlconf的位置
  • 配置应用的url(基于类的视图,待研究
from django.urls import path
from . import views
app_name = 'orders'
urlpatterns=[
    path('',views.IndexView.as_view(),name='index'),
    ] #IndexView是再view.py里定义的类

5. 视图(view)

在view.py中编辑URL对应的index视图

from django.shortcuts import render
from django.views import generic
from .models import Menu,Order
class IndexView(generic.ListView):#继承ListView类,返回一个可迭代的对象
    template_name = 'orders/index.html' #视图模板,模板放置位置mysite\orders\templates\order\
    context_object_name = 'Menus' #返回的list名字,并将该迭代对象以Menus为名传递到模板中
    model=Menu#指定数据表

6. 模板

在mysite\orders\templates\order\提供1个对应的模板

7. 静态文件管理

7.1 静态文件夹目录

在这里插入图片描述
在app目录下新建static-app名字文件夹,用来存放该app专用的静态文件

7.2 静态文件路径配置

在settings中默认的静态文件路径为static/,表示在查找静态文件时会从项目根目录下的static或应用程序APP下的名为static的文件夹中开始查找

# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/4.0/howto/static-files/

STATIC_URL = 'static/'

7.3 static标签

HTML中使用static标签来加载静态文件
(1)先用{% load static %}导入
(2)引用格式:{% static ‘static下层文件夹名/静态文件名’ %}

  • 网上下载的HTML模板可以用正则表达式替换静态文件路径
#查找
"(images/|css/|js/|icon/)(\S*)"
#替换
"{%static 'dashboards/$1$2' %}"
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值