目录
- 创建一个django项目
- 1,vscode安装 “python”扩展
- 2,创建一个 django项目
- 了解目录
- 创建app
- 安装postgreSQL
- 创建 demo_app model
- 创建 demo_app views/urls/tempaltes
- 创建全局 html文件
- Django 模板语法
- 其他
Django是一个高级的PythonWeb应用框架,可以快速开发安全和可维护的网站。
Django遵循一种称为MTV(模型-模板-视图)模式的架构模式。
创建一个django项目
1,vscode安装 “python”扩展
2,创建一个 django项目
# 新增一个文件夹 djangoDemo cd djangoDemo # 虚拟环境env python -m venv env #激活虚拟环境 .\env\Scripts\activate # 安装 django pip install django # 利用 django创建项目 django-admin startproject [项目名] # 运行开发服务 cd [项目名] python manage.py runserver 浏览器输入 http://127.0.0.1:8000/ 可以打开页面代表创建成功了解目录
demo |----demon | |---- _pycache_ | |---- _init_.py // 表示这个目录属于python模块 | |---- asgi.py // 异步功能 | |---- settings.py // web服务器所需要的设置,比较重要 | |---- urls.py | |---- wsgi.py |----demo_app | |---- _pycache_ | |---- migations // 数据库架构的一个记录 | |---- templates // 存放html文件 | |---- _init_.py // 表示这个目录属于python模块 | |---- admin.py // django 后台管理 | |---- apps.py // 不需要管 | |---- models.py // 数据库数据表相关 | |---- tests.py // 运行测试程序 | |---- views.py // 处理逻辑返回http response |----manage.py // 项目的根目录创建app
python manage.py startapp [app名称]在demo>settings.py中添加我们新增的 app
安装postgreSQL
1,安装postgreSQL数据库:https://www.postgresql.org/,并将bin目录添加到系统环境变量中;
2,psycopg2 是一个用于 Python 的 PostgreSQL 数据库驱动程序。在使用 Django 中的 PostgreSQL 数据库前,需要先安装 psycopg2
pip install psycopg2
3, 在 settings.py中设置数据库配置
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': 'postgres', // 安装postgresql默认的数据库名称 'USER': 'postgres', //安装postgresql默认的user名称 'PASSWORD': '123456', // 应该是安装postgresql的时候自己设置的密码 'HOST': 'localhost', 'PORT': '5432', } }在settings.py文件中完成postgreSQL数据库配置后,需要以命令形式同步数据库,在根目录下执行命令:
python manage.py makemigrations
python manage.py migrate
创建 demo_app model
# demo_project -> urls.py 有个admin路径 浏览器输入:http://127.0.0.1:8000/admin 打开一个后台登录页 # 创建一个管理员账户 python manage.py createsuperuser# demo_app -> models.py 创建有个Todo数据表,有2个字段(name,due_date), class Todo(models.Model): name = models.CharField(max_length=100) due_date = models.DateField() // 对name做处理 def __str__(self): return self.name # demo_app -> admin.py 讲models.py新增的Todo,添加到后台管理页面中 from .models import Todo admin.site.register(Todo) # 同步数据库 python manage.py makemigrations python manage.py migrate创建 demo_app views/urls/tempaltes
# demo_app -> views.py # 处理逻辑返回 http response from django.http import HttpResponse def todo_list(request): return HttpResponse('todo list') # demo -> urls.py urlpatterns = [ path('', todo_list), # 在 根目录 路径下下使用 todo_list函数处理 ] 页面显示 “todo list”# demo_app -> views.py from django.shortcuts import render def todo_list(request): return render(request, 'todo_list.html') # demo_app -> templates 文件夹新建一个 todo_list.html <html> <head> <title>Todo List</title> </head> <body> <h1>todo_list.html</h1> </body> </html> 页面显示 “todo_list.html”的内容创建全局 html文件
1,在项目的跟目录下 新建 templates 文件夹,里面新增todo_list.html文件 <html> <head> <title>Todo List</title> </head> <body> <h1>全局 todo_list.html</h1> </body> </html> 2,demo -> settings.py import os BASE_DIR = Path(__file__).resolve().parent.parent # 获取当前文件所在目录 TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR, 'templates')], # 当前文件所在目录下的 templates 目录 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ]Django 模板语法
templates 文件夹里面存放 html文件,可以在html文件显示response 返回的数据
{% if condition %} # 条件判断 {% if not condition %} # 否定条件判断 {% for item in list %} # 循环遍历 {{ variable }} # 输出变量值 {% endif %}, {% endfor %} # 结束标签 例如: <html> <head> <title>Todo List</title> </head> <body> {% if not request.user.is_authenticated %} <h1>您好,{{request.user.username}}还未登录</h1> {% else %} <h2>{{request.user.username}}的Todo:</h2> <ul> {% for todo in todo_list %} <li>{{ todo.name }},截至时间 {{todo.due_date}}</li> {% endfor %} </ul> {% endif %} </body> </html>其他
# 用户对象特性 request.user.is_authenticated # 判断用户是否登录 返回 Boolean