Django 项目笔记

mac2026-02-01  2

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), ]

引入之前准备的静态文件

静态文件GIT地址 https://gitee.com/getcharzp/static-getcat-zhaopin.git将所有的HTML文件先放到 template 文件夹中在项目根目录下面创建一个 static 文件夹,用于放静态资源文件,修改 setting.py 文件 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 { width: 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()
最新回复(0)