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 {
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()

Django 项目笔记的更多相关文章

  1. Django项目笔记:sessions处理以及复杂对象序列化

    前言:一点题外话 我发现,不更新博客的时候,不是非常忙,就是效率非常低.最近没怎么更新博客,原因是第二种= =.惭愧惭愧. 今天效率出奇的高,一天时间把PassNote后端的接口全部写完了,Djang ...

  2. Django商城项目笔记No.12用户部分-QQ登录2获取QQ用户openid

    Django商城项目笔记No.12用户部分-QQ登录2获取QQ用户openid 上一步获取QQ登录网址之后,测试登录之后本该跳转到这个界面 但是报错了: 新建oauth_callback.html & ...

  3. Django商城项目笔记No.11用户部分-QQ登录1获取QQ登录网址

    Django商城项目笔记No.11用户部分-QQ登录 QQ登录,亦即我们所说的第三方登录,是指用户可以不在本项目中输入密码,而直接通过第三方的验证,成功登录本项目. 若想实现QQ登录,需要成为QQ互联 ...

  4. Django商城项目笔记No.10用户部分-登录接口

    Django商城项目笔记No.10用户部分-登录接口 添加url路由 接下来第二步,增加返回内容: 增加结果如下: 配置:上边的方法定义了返回的内容都有哪些,那这个方法jwt还不知道,需要配置: 修改 ...

  5. Django商城项目笔记No.9用户部分-注册接口签发JWTtoken

    Django商城项目笔记No.9用户部分-注册接口签发JWTtoken 我们在验证完用户的身份后(检验用户名和密码),需要向用户签发JWT,在需要用到用户身份信息的时候,还需核验用户的JWT. 关于签 ...

  6. Django商城项目笔记No.8用户部分-注册接口实现

    Django商城项目笔记No.8用户部分-注册接口实现 users的view.py中增加如下代码 class RegisterUserView(CreateAPIView): "" ...

  7. Django商城项目笔记No.7用户部分-注册接口-判断用户名和手机号是否存在

    Django商城项目笔记No.7用户部分-注册接口-判断用户名和手机号是否存在 判断用户名是否存在 后端视图代码实现,在users/view.py里编写如下代码 class UsernameCount ...

  8. Django商城项目笔记No.6用户部分-注册接口-短信验证码实现celery异步

    Django商城项目笔记No.4用户部分-注册接口-短信验证码实现celery异步 接上一篇,如何解决前后端请求跨域问题? 首先想一下,为什么图片验证码请求的也是后端的api.meiduo.site: ...

  9. Django商城项目笔记No.5用户部分-注册接口-短信验证码

    Django商城项目笔记No.4用户部分-注册接口-短信验证码 短信验证码也保存在redis里(sms_code_15101234567) 在views中新增SMSCodeView类视图,并且写出步骤 ...

随机推荐

  1. Unix 线程改变创建进程中变量的值(2)

    执行环境:Linux ubuntu 4.4.0-31-generic #50-Ubuntu SMP Wed Jul 13 00:07:12 UTC 2016 x86_64 x86_64 x86_64 ...

  2. Spring Cloud OAuth2 实现用户认证及单点登录

    文章较长,建议推荐,建议转发,建议收藏,建议关注公众号哈. OAuth 2 有四种授权模式,分别是授权码模式(authorization code).简化模式(implicit).密码模式(resou ...

  3. python学习-模块与包(九)

    9.4查看模块内容 dir(): 返回模块或类所包含的全部程序单元(包括变量.函数.类和方法等) __all__:模块本身提供的变量,不会展示以下划线开头的程序单元.另使用from xx import ...

  4. python类方法@classmethod与@staticmethod

    目录 python类方法@classmethod与@staticmethod 一.@classmethod 介绍 语法 举例 二.@staticmethod 介绍 语法 举例 python类方法@cl ...

  5. Unity5-ABSystem(三):AssetBundle加载

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/lodypig/article/detai ...

  6. vue学习笔记(一)入门

    前言 随着前端不断的壮大,许多公司对于前端开发者的需求也越来越多了,作为一名优秀的前端工程师,如果连vue和react都不会的话,那真是out了,为什么那么说呢?这是我在招聘网站上截的一张图,十家公司 ...

  7. Dubbo 全链路追踪日志的实现

    微服务架构的项目,一次请求可能会调用多个微服务,这样就会产生多个微服务的请求日志,当我们想要查看整个请求链路的日志时,就会变得困难,所幸的是我们有一些集中日志收集工具,比如很热门的ELK,我们需要把这 ...

  8. Rust 中的类型转换

    1. as 运算符 as 运算符有点像 C 中的强制类型转换,区别在于,它只能用于原始类型(i32 .i64 .f32 . f64 . u8 . u32 . char 等类型),并且它是安全的. 例 ...

  9. Windows 10 与 kali 双系统安装

    一.教程中用到的工具如下: 1.kali 2019镜像, 2.U盘 现在最低也有8G吧 3.软碟通 ,U盘刻录工具 4.win 10系统要留出一个空的硬盘,哪个盘的空间比较大可以压缩出大概100G的空 ...

  10. 一个自动管理项目的Makefile(C语言)

    Linux 是所有嵌入式软件工程师绕不过去的坎, makefile 是在Linux系统中绕不过去的坎. 花了几天时间初步学习和了解了makefile 的作用以及功能,并且制作了一个通用型的makefi ...