初步了解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
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)