• Django 项目笔记


    Django 环境的搭建

    Django 安装
    pip install django==2.1.4
    
    Django 创建项目
    django-admin startproject mysite
    
    Django 创建应用
    python manage.py startapp myapp
    
    Django 启动项目
    python manage.py runserver IP:PORT
    
    Django 数据迁移
    python manage.py makemigrations
    python manage.py migrate
    

    通过Pycharm 创建Django项目

    怎么再Django中创建HTML,以及怎样指定它的路由关系

    ①判断项目是否指定了模板所在的位置
    • 首先打开项目所在位置的setting.py 文件,找到它的template哪一项,看它DIR是否有指定模板的位置,如果没有指定,就通过os.path.join(BASE_DIR, 'templates')人为指定。
    • 在做表单提交的是否如果遇到了 forbidden 错误,建议注释掉MIDDLEWARE中的'django.middleware.csrf.CsrfViewMiddleware',或者在提交数据的术后加上 {% csrf_token %}
    ②在template目录下新建HTML文件
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
    </head>
    <body>
    <div class="panel panel-default">
        <div class="panel-heading">面板头</div>
        <div class="panel-body">面板主题</div>
    </div>
    </body>
    </html>
    
    ③在应用所对应views.py文件中添加相应的模板函数
    from django.shortcuts import render
    
    def test(request):
        return render(request, "my-test.html")
    
    ④修改项目下面的urls.py 文件
    from django.contrib import admin
    from django.urls import path
    from video import views
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('my-test/', views.test),
    ]
    

    引入之前准备的静态文件

    STATICFILES_DIRS = [
        os.path.join(BASE_DIR, "static")
    ]
    

    调整项目中的路由对应关系,页面中的跳转

    使用 {%%},里面可以指定逻辑代码

    {% csrf_token %}
    

    使用 {{}},里面只能是变量

    {{ person }}
    

    母版的使用

    理解:通过建立一个挖过坑的HTML来实现模板继承

    例子:

    • 建立一个 母版文件的 HTML
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            * {
                margin: 0;
                padding: 0;
            }
            
            .header {
                 100%;
                height: 90px;
                background-color: #65ccff;
            }
        </style>
    </head>
    <body>
    <div class="header"></div>
    {% block content %}
    
    {% endblock %}
    </body>
    </html>
    
    • 其他HTML继承这个母版HTML
    {% extends 'base.html' %}
    {% block content %}
    <p>GetcharZp Index</p>
    {% endblock %}
    

    数据库配置

    • 修改 setting.py 文件
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': '数据库名称',
            'USER': '用户名',
            'PASSWORD': '密码',
            'HOST': '127.0.0.1',
            'PORT': '3306',
        }
    }
    
    • 修改在与 setting.py 同级的目录下的 _ init_.py 文件
    import pymysql
    
    pymysql.install_as_MySQLdb()
    

    数据库的设计

    • 表的设计,应用下面的 models.py 文件
    from django.db import models
    
    class User(models.Model):
        username = models.CharField(max_length=32)
        password = models.CharField(max_length=32)
        email = models.CharField(max_length=32)
        create_time = models.IntegerField()
    
    class Cate(models.Model):
        cid = models.AutoField(primary_key=True)
        pid = models.IntegerField()
        cate_name = models.CharField(max_length=32)
    
    class Position(models.Model):
        name = models.CharField(max_length=32)
        cid = models.IntegerField(max_length=10)
        salary = models.CharField(max_length=32)
        address = models.CharField(max_length=32)
        duty = models.CharField(max_length=500)
        condition = models.CharField(max_length=500)
        create_time = models.IntegerField()
    
    • 数据库的迁移
    python manage.py makemigrations  # 包的创建
    
    python manage.py migrate		# 数据同步到数据库中
    

    用户登录注册

    • session数据的保存
    request.session['username'] = username
    
    • 前端如何检测是否有 session数据
    {% if request.session.username %}
    
    • 获取前端提交过来的数据
    request.POST.get('username')
    request.POST.get('password')
    
    • 数据的查询
    User.objects.filter(username=username, password=password)
    
    • 数据的插入
    User.objects.create(username=username, password=password, create_time=time.time())
    
    • 数据的更新
    User.objects.fileter(id=1).update(username=Getchar)
    
    • 数据删除
    User.objects.fileter(id=1).delete()
    
  • 相关阅读:
    如何查看苹果id的登陆设备
    苹果手机怎么下载软件app
    苹果id密码正确登录不了怎么办
    如何给美国苹果id充值
    苹果新手机导入旧手机数据
    苹果手机怎么下载安装netflix奈飞
    iOS全埋点解决方案界面预览事件
    iOS全埋点解决方案控件点击事件
    iOS全埋点解决方案UITableView和UICollectionView点击事件
    iOS全埋点解决方案应用退出和启动
  • 原文地址:https://www.cnblogs.com/GetcharZp/p/11669771.html
Copyright © 2020-2023  润新知