Django随笔

安装

  • 系统环境安装 pip3 install Django
  • 虚拟环境安装 py -m pip install Django
  • 虚拟环境检查版本 py -m django --version

安装指定版本

  • 后期希望获取补丁和改进

    • 确保安装了Git
    • 执行命令行 git clone https://github.com/django/django.git
    • 激活 py -m pip install -e django\
    • 更新Django源代码 diango目录下运行 git pull
  • 虚拟环境

    • 创建venv模块作为脚本运行目录 python -m venv tutorial-env
    • 激活虚拟环境 tutorial-env\Scripts\activate
    • 撤销一个虚拟环境 deactivate
  • 查看pip安装(一下指令基于虚拟环境中)

    • 更新包 python -m pip install --upgrade 包名
    • 卸载包 python -m pip uninstall 包名
    • 显示包详细信息 python -m pip show 包名
    • 显示虚拟环境安装的包 python -m pip list

安装Apache和mod_wsgi

安装Apache

  • 找到官方网站,找到需要版本安装
  • 下载结束之后,解压到安装的指定位置
  • 找到Apache文件夹的conf目录,找到httpd.conf文件
  • 打开httpd.conf文件,修改ServerRoot指令的参数值(Apache的存放位置)
  • 以管理员权限运行cmd,导航到apache的bin目录
  • 执行指令 httpd -k install -n "Apache24"
  • 启动apache服务
  • 通过localhost127.0.0.1去访问,验证是否安装成功

安装WSGI

  • pip3 install mod_wsgi
  • 如果遇到 MOD_WSGI_APACHE_ROOTDIR报错,cmd设置apache的安装路径

创建一个Django项目

  • 创建一个项目 django-admin startproject 项目名称
  • 运行项目 py manage.py runserver
  • 指定端口 py manage.py runserver 端口号

在项目中增加包

  • 增加包 py manage.py startapp 包名(如 polls)
  • 可以生成应用的基础目录结构

编写一个试图

  • 在polls/views.py
from django.http import HttpResponse


def index(request):
    return HttpResponse('Hello, world. You\'re at the polls index.')

  • 在polls/urls.py中
from django.urls import path
from . import views
urlpatterns = [
    path("", views.index, name="index"),
]
  • mysite/urls.py文件中的urlpatterns列表里插入一个include()
from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('polls/', include('polls.urls')),
    path('admin/', admin.site.urls),
]

函数path()

  • 函数**path()**具有四个参数,两个必须参数 routeview ,可选参数 kwargsname

1.route

  • route是一个匹配URL的准则,它会从urlpatterns的第一项开始,按顺序依次匹配列表中的项,直到找到匹配的项

2.view

  • Django 找到了一个匹配的准则,就会调用这个特定的视图函数,并传入一个 HttpRequest 对象作为第一个参数,被“捕获”的参数以关键字参数的形式传入

3.kwargs

  • 任意个关键字参数可以作为一个字典传递给目标视图函数

4.name

  • URL 取名能使你在 Django 的任意地方唯一地引用它,尤其是在模板中

数据库配置

1.数据库配置

  • 编辑 mysite/settings.py 文件前,先设置 TIME_ZONE 为你自己时区(“Asia/Shanghai”)
  • 打开mysite/setting.py文件,文件默认信息(DATABASE ‘default’)就是python默认数据库的支持
  • 其中 ENGINE可选值
    • django.db.backends.sqlite3
    • django.bd.backends.postgresql
    • django.db.backends.mysql
    • django.db.backends.oracle
    • 其他后端数据
  • NAME 数据库的名称,NAME应该是此文件完整的绝对路径,包括文件名
    • 默认值 BASE_DIR/‘db.sqlite3’ 将把数据库文件存储在项目的根目录
  • 非默认数据库,还需配置USER\PASSWORD\HOST等等
    • 以PostgreSQL为例
    	DATABASES = {
        "default": {
            "ENGINE": "django.db.backends.postgresql",
            "NAME": "mydatabase",
            "USER": "mydatabaseuser",
            "PASSWORD": "mypassword",
            "HOST": "127.0.0.1",
            "PORT": "5432",
        }
    }
    

2.INSTALLED_APPS

  • 在mysite/setting.py文件中,INSTALLED_APPS设置项,包含了Django应用
  • INSTALLED_APPS默认包含一下Django的自带应用
    • django.contrib.admin – 管理员站点, 你很快就会使用它。
    • django.contrib.auth – 认证授权系统。
    • django.contrib.contenttypes – 内容类型框架。
    • django.contrib.sessions – 会话框架。
    • django.contrib.messages – 消息框架。
    • django.contrib.staticfiles – 管理静态文件的框架。
  • 默认开启的某些应用至少一个数据表,在使用它们之前需要在数据中创建一些表,执行一下命令
    • py manage.py migrate

3.创建模型

  • 在 Django 里写一个数据库驱动的 Web 应用的第一步是定义模型 - 也就是数据库结构设计和附加的其它元数据
  • polls/models.py文件中,定义模型
from django.db import models


class Question(models.Model):
    question_text = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')


class Choice(models.Model):
    question = models.ForeignKey(Question, on_delete=models.CASCADE)
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField(default=0)

  • 补充知识点:
    • 每个字段都是Field类的实例,如CharField标识字符字段
    • Field也能够接收多个参数,如default设置默认参数
    • ForeignKey定义一个关系
      • on_delete的参数有多种
        • models.CASCDE 级联删除,也删除了还包含ForeignKey的对象
        • models.PROTECT 阻止删除关联对象,除非没有相关关联的对象
        • models.RESTRICT 阻止删除被引用的对象,被引用的对象也引用了在同一个操作中被删除的不同对象,通过CASCADE关系,则允许删除被引用的对象
        • models.SET_NULL 设置ForeignKey为空;只有当null为True,才有可能
        • models.SET_DEFAULT 设置为默认值;必须为ForeignKey设置一个默认值

激活模型

  • polls应用安装到项目中,PollsConfig类些在文件 polls/apps.py中,它的点式路径是’polls.apps.PollsConfig’,添加到mysite/settings.py中的INSTALLED_APPS子项添加点式路径
  • 执行指令 py manage.py makemigrations polls
  • 通过运行makemigrations命令,Django会检测你对模型文件的修改
  • 通过sqlmigrate命令接收以一个迁移的名称,返回对应的SQL
    • py manage.py sqlmigrate polls 0001

编辑models.py文件,改变模型

  • 运行 python manage.py makemigrations 为模型的改变生成迁移文件
  • 运行 python manage.py migrate 来应用数据库迁移
  • 10
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值