开源web框架,简洁快速开发数据库驱动网站,有强大的第三方库(扩展性)
1)重量级框架
对比flask框架,原生提供众多 功能组件,让开发简洁快速
2)MVT模式
虚拟环境安装(linux版):
pycharm创建项目设置虚拟环境(windows环境)
1.打开pycharm,创建新项目day15
2.点击file、点击settings,选择priject->python interpreter->show all
3.点击”+”
4.选择virtualenv environment 选择new environment 路径选择刚才新建的文件夹路径,base interpreter 选择python系统解释器路径,点击ok
填写虚拟环境名称venv2
5.创建成功后,刚才新建的文件夹会变成这样
6.点击pycharm窗口下方的terminal,出来命令窗口,进入路径内执行activate,可进入虚拟环境
7.进入后前方会多一个括号,括号内容为当前虚拟环境,此时再pip install 安装包 会安装在当前虚拟环境中
8.退出虚拟环境命令 deactivate
pip install django==2.2.5
1、创建django项目
django-admin startproject my_django
2、目录结构
与项目同名目录,此处为my_django
settings.py是项目的整体配置文件
urls.py是项目的url配置文件
wsgl.py是项目与WSGL兼容的web服务器入口
manage.py是项目管理文件,通过它管理项目
2、进入my_django,运行manage.py
方式一:通过命令的方式启动
python manage.py runserver
方式二:通过编译器的方式启动,Parameters:输入框中输入 runserver
4、运行效果(ctrl+c 停止)
1、创建子应用
python manager.py startapp django_son
2、目录结构
admin.py 文件跟网站后台管理站点配置相关
apps.py文件用户配置当前子应用的相关信息
migrations 目录用于存放数据库迁移历史文件
models.py 保存数据库模型类
tests.py 开发测试类
views.py 编写web应用视图
from django.db import models
# Create your models here.
# 1/定义模型继承models.Model
# 2/系统会自动给我们加一个id
# 3/字段
# 字段名=models。类型(选项)
class BookInfo(models.Model):
#id
name = models.CharField(max_length=10)
# 重写 str方法以让admin来显示书籍名字
def __str__(self):
return self.name
# 人物 先复制过来。后期将原理
class PeopleInfo(models.Model):
name = models.CharField(max_length=10)
gender = models.BooleanField()
# 外键约束:人物属于哪本书
book = models.ForeignKey(BookInfo,on_delete=models.CASCADE)
生成迁移文件
python manage.py makemigrations
执行迁移
python manage.py migrate
创建超级管理员
python manage.py createsuperuser
登录后台
# 重写 str方法以让admin来显示书籍名字
def __str__(self):
return self.name
from django.shortcuts import render
# Create your views here.
"""
视图
所谓的视图 其实就是python函数
视图函数有2个要求:
1. 视图函数的第一个参数就是接收请求。这个请求其实就是 HttpRequest的类对象
2. 必须返回一个响应
"""
# request
from django.http import HttpRequest
from django.http import HttpResponse
# 我们期望用户输入 http://127.0.0.1:8000/index/
# 来访问视图函数
def index(request):
# return HttpResponse('ok')
# render 渲染模板
#request, template_name, context=None
#request, 请求
# template_name, 模板名字
# context=None
# 100/0
#模拟数据查询
context={
'name':'马上双11,点击有惊喜'
}
return render(request,'book/index.html',context=context)
from django.contrib import admin
from django.urls import path
from django_son.views import index
urlpatterns = [
path('admin/', admin.site.urls),
path('index/', index)
]
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(file)))
print(file)
D:/Python/Demo/day15/my_django/my_django/settings.py
CommandError: You must set settings.ALLOWED_HOSTS if DEBUG is False.
‘*’可以使用ip,也可以使用localhost
STATIC_URL
STATIC_URL = '/static/' #静态资源路由
# 告知系统,图片在哪里
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static'),
]
# 方案二
'django_son.apps.DjangoSonConfig',