关于Django的一些基础语法

Django项目

创建django项目:

django-admin startproject 项目名

创建django应用:

要先进入django项目名里才能创建:  cd 项目名

django-admin startapp myapp 

注:myapp是子应用名

实例:

模板页面

模板配置

在settings.py文件中,找到TEMPLATES选项,修改其中的DIRS属性,在这里添加我们的html文件夹位置

# project.settings.py
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',
            ],
        },
    },
]

创建模板

 在项目的根目录下,创建一个templates文件夹,然后创建一个HTML文件

视图渲染

 在子应用下的views文件里写视图渲染 以函数的形式定义

from django.shortcuts import render

# Create your views here.
def index(request):
 
    return render(request, "index.html")

给视图传值

1.映射格式数据
  以key:value的形式传值
    from django.shortcuts import render
    def index(request):
        content = {'weather': '晴天'}
        return render(request, 'index.html', content)

2.直接用locals方法,将变量及值组合成字典

    from django.shortcuts import render
    def index(request):
		weather = '晴天'
		return render(request,'index.html',locals())

路由分散

从同名文件里复制urls.py文件

主应用下的urls.py

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

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

 子应用下的urls.py

 在子路由里给视图配路由

from django.urls import path
from myapp.views import index

urlpatterns = [
    path("index/", index),
]

模板语句循环,分支

{% for var in sequence %}
    {{ var }}
{% endfor %}

{% if test_list %}
    列表不为空
{% elif test_dict %}
    列表为空,字典不为空
{% else %}
    列表字典均为空
{% endif %}

 ORM映射  和mysql建立连接

概念

ORM映射关系,是django与数据库之间的一个桥梁,可以使开发者不再关注如何去编写SQL语句,直接通过一套ORM所提供的API接口即可方便对各种数据库进行交互

M:和数据库进行交互,进行数据处理

V:视图

T:template模板

模型类编写

在子应用myapp下的models.py文件中创建模型类

from django.db import models


# Create your models here.
class Student(models.Model):
    name = models.CharField(max_length=10, verbose_name="名字")
    age = models.IntegerField(verbose_name="年龄")
    sex = models.CharField(max_length=10, verbose_name="性别")

    #定义元类
    class Meta:
        #修改数据库里的表名
        db_table = "student"
        #在admin后台中看到的效果
        verbose_name_plural = "学生"
    
    #在admin后台中看到添加对象的名字
    def __str__(self):
        return self.name

注册APP

在settings文件中进行配置

#myproject/settings.py
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    #注册app
    'myapp',
]

然后在同名文件下的__init__文件里写

#告诉django安装了mysql
import pymysql
pymysql.install_as_MySQLdb()

生成迁移文件

python manage.py makemigrations

执行迁移文件

python manage.py migrate

创建超级用户

python manage.py createsuperuser

admin控制台注册模型类

在子应用下的admin.py里写

from django.contrib import admin
from myapp.models import Student

# Register your models here.
admin.site.register(Student)
#使用 register 函数接收模型类作为参数即可完成注册

ORM视图操作

如何通过ORM操作模型类

from django.shortcuts import render
from myapp.models import Student

# Create your views here.
def stu(request):
    stus = Student.objects.all()
    dict = {"info": stus}
    return render(request, "index.html", dict)

模版页面数据渲染ORM操作结果

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>hi</title>
</head>
<body>
    {% for foo in info %}
        <p>{{ foo.id }}</p>
        <p>{{ foo.name }}</p>
    {% endfor %}
</body>
</html>

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值