Django-入门

目录

-Django版本

--5种转换器

--自定义转换器

--级联更新级联删除

-Django安装

-Django基本操作

--终端命令操作

---创建Django项目

---启动Django项目

---创建功能模块

--PyCharm操作

---创建Django项目

---启动Django项目

---创建功能模块

---修改端口号

--命令行创建Django项目与PyCharm创建区别

--注意

---正常启动Django项目

---app注册

-Django项目文件介绍

-Django必会三剑客

-Django初次使用


-Django版本

django 1.x        默认不支持异步,路由层使用的是url
django 2.x        默认不支持异步,路由使用的是path方法,正则用re_path
django 3.x        自带异步功能,路由使用的是path方法,正则用re_path
django 4.x        2022年更新,支持异步

--5种转换器

path方法虽不支持正则匹配,但它内部有5种转换器:
	str,匹配除路径分隔符(/)之外的非空字符串,默认
	int,匹配正整数,包含0
	slug,匹配字母、数字以及横杠、下划线组成的字符串
	uuid,匹配格式化的uuid,如 075194d3-6885-417e-a8a8-6c931e272f00。
    path,匹配任何非空字符串,包含了路径分隔符(/)

eg:
    path('index/<int:id>',index) # 将路由里面的第二个内容转换为整型,以关键字传给视图函数index

    def index(request, id):
        print(id, type(id))
        return HttpResponse('index test')

--自定义转换器

 除了5种转换器外,还可以自定义转换器

# 1、在任意app下新建文件my_converter.py,文件可以随意命名:
class MonthConverter:
    regex='\d{2}' # 属性名必须为regex,匹配两位数的月份
    def to_python(self, value):
        return int(value)
    def to_url(self, value):
        return value # 匹配的regex是两个数字,返回的结果也必须是两个数字
# 2、在urls.py中,使用register_converter将其注册到URL配置中:
from django.urls import path,register_converter
from app01.my_converts import MonthConverter
register_converter(MonthConverter,'mon')
from app01 import views
urlpatterns = [
    path('articles/<int:year>/<mon:month>/<slug:other>/', views.article_detail,name='aaa'),
]
# 3、views.py中的视图函数article_detail:
from django.shortcuts import render,HttpResponse,reverse
def article_detail(request,year,month,other):
    print(year,type(year))
    print(month,type(month))
    print(other,type(other))
    print(reverse('xxx',args=(2016,12,'hello'))) # 反向解析
    return HttpResponse('xxx')
# 4、测试
    # 1、在浏览器输入http://127.0.0.1:8000/articles/2009/12/hello/,path会成功匹配出参数year=2009,month=12,other='hello'传递给函数article_detail
    # 2、在浏览器输入http://127.0.0.1:8000/articles/2009/123/hello/,path会匹配失败,因为我们自定义的转换器mon只匹配两位数字,而对应位置的123超过了2位

--级联更新级联删除

 Django1.x版本的外键默认都是级联更新级联删除的,而2.x和3.x不是,需要在外键中加参数

on_delete = models.CASCADE
# 级联删除与之关联数据

on_delete = models.DO_NOTHING
# 删除关联数据什么也不做

on_delete = models.PROTECT
# 删除关联数据引发错误ProtectedError

on_delete = models.SET_NULL
# 删除数据,与之关联的值设为null

on_delete = models.SET_DEFAULT
# 删除数据,与之关联的值设置为默认值(default=中配置的)

on_delete = models.SET
# 删除数据,与之关联的设置为指定值。 设置:models.SET(value)

-Django安装

这我以3.0.1版本为例

pip3 install django==3.0.1
# 如果之前下载了其它版本,自动替换!

-Django基本操作

--终端命令操作

---创建Django项目

django-admin startproject 项目名
# 默认保存在C盘

eg:
    django-admin startproject myFirstDjango

---启动Django项目

一定先切换到对应项目目录下
    cd myFirstDjango
启动项目:
    python3 manager.py runserver
    # 显示了网址和端口号即为启动成功

---创建功能模块

python3 manage.py startapp app名     # 见名知意

eg:
    python3 manage.py startapp app01

--PyCharm操作

---创建Django项目

---启动Django项目

---创建功能模块

在新建项目时可以事先创建一个app

若要额外创建:

terminal(终端)中输入命令:
    python3 manage.py startapp app名

---修改端口号

点击“编辑配置”即可修改端口号等 

--命令行创建Django项目与PyCharm创建区别

  • pycharm创建会自动给你创建一个templates文件夹,而命令行没有,需手动创建
    
    且pycharm创建的templates文件夹在配置文件(settings.py)中自动拼接了路径,我们在引用其中文件时直接引用文件路径即可,而用命令行创建的还需加templates文件夹对应路径
    
    pycharm创建可以事先指定一个app
    

--注意

---正常启动Django项目

  • 计算机名称中不要有中文
  • 一个pycharm窗口只运行一个Django项目
  • 项目里的所有文件也尽量不要出现中文
  • python解释器版本不同可能出现启动报错,尽量用3.4~3.6版的解释器

---app注册

新建的app一定一定一定要去settings.py中注册!!!

INSTALLED_APPS = [
    'App01.apps.App01Config', # 方式一
    # 'App01'         # 方式二,简写
]

-Django项目文件介绍

创建一个Django项目后,会产生如下文件

-myFirstDjango文件夹名称

  --myFirstDjango同名文件夹

       ---__init__.py               初始化文件

    ---settings.py        项目配置文件

    ---urls.py           总路由层

       ---wsgi.py                    wsgiref模块

  --manage.py             项目入口文件
 
  --db.sqlite3             运行项目后自动创建(django自带的小型数据库)

  --App01                 应用文件夹,通过命令创建(可以创建任意个数)

    ---migrations文件夹       存储数据迁移记录

    ---admin.py           django提供的后台管理

    ---apps.py            用于配置文件的应用注册(创建的应用都需要去配置文件中注册)

    ---models.py           模型层(与数据库相关)

    ---views.py           视图层(编写当前应用核心业务逻辑代码)

    ---tests.py           自带的测试文件

    --templates文件夹                存放html文件模板

-Django必会三剑客

from django.shortcuts import render,HttpResponse,redirect
render              返回html页面,后端传值给html页面
HttpResponse        返回字符串类型数据
redirect            重定向(跳转网址)

-Django初次使用

urls.py

from django.contrib import admin
from django.urls import path
from App01 import views


urlpatterns = [
    # Django默认自带
    path('admin/', admin.site.urls),
    # 测试路径hello
    path('hello/', views.hello),
]

views.py

from django.shortcuts import render,HttpResponse,redirect

def hello(request):
    return HttpResponse('hello 我的第一个web尝试')
    # return render(request, 'html01.html')    # 只需输html文件名即可,自动帮你去templates中找
    # return redirect('https://www.baidu.com/') # 重定向

templates/html01.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>html01</title>
</head>
<body>
    <h1>hello congratulations you are here!</h1>
</body>
</html>

测试

点击“绿色三角”启动myFirstDjango项目
然后浏览器中输入 http://127.0.0.1:8000/hello
即可访问到对应内容
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 《Django 3 入门与实践》是一本针对初学者的Django入门教程,涵盖了Django 3的基础知识和实践案例。 这本书首先介绍了Django的基本概念和特点,如何安装和配置Django开发环境,以及Django的项目结构和组件。接着,书中详细讲解了如何创建Django应用程序,包括创建模型、视图和模板。读者可以通过这些例子逐步了解Django的开发流程和常用功能。 《Django 3 入门与实践》还涵盖了Django的高级功能和实践技巧。例如,它介绍了Django的用户认证系统和权限控制,以及如何处理表单和文件上传。此外,书中还讲解了如何使用Django的ORM(对象关系映射)进行数据库操作,以及如何优化Django应用的性能和安全性。 为了帮助读者更好地理解和应用所学知识,该书还提供了一系列实践案例,涵盖了常见的Web开发需求和场景。通过这些案例,读者可以将所学知识应用到实际项目中,并了解如何构建完整的Django应用。 总的来说,《Django 3 入门与实践》是一本适合初学者的Django学习教程。书中内容系统全面,深入浅出,通过实践案例的讲解,读者能够掌握Django的基础知识和实际应用技巧。无论是想入门Django的初学者还是想提升Django技能的开发者,都可以从这本书中获益良多。 ### 回答2: "Django3入门与实践"是一本非常受欢迎的Python web框架Django的学习指南。这本书适合那些希望学习如何使用Django构建高质量网站和Web应用的初学者。 首先,书中介绍了Django的基本概念和核心功能,比如模型、视图、模板和表单等。这些知识对于理解Django的工作原理至关重要。读者可以通过实际的代码示例和详细的说明来学习如何创建和管理数据库模型,以及如何将数据呈现给用户。此外,书中还介绍了如何使用Django的内置认证系统和权限管理来确保网站的安全和用户验证。 其次,书中深入探讨了Django的高级特性和扩展。例如,它介绍了如何使用Django路由系统来处理URL映射和页面重定向,以及如何使用Django的ORM来处理复杂的数据库查询和关系。此外,书中还介绍了如何使用Django的表单功能来处理用户输入和验证,以及如何使用Django的静态文件管理和国际化支持等高级功能。 最后,书中还提供了一些实践项目,这些项目可以帮助读者将所学知识应用到实际开发中。通过完成这些项目,读者可以进一步加深对Django的理解和掌握,并在实际项目中应用自己的技能。 总之,"Django3入门与实践"是一本很好的入门指南,适合初学者快速入门Django并理解其核心概念和功能。无论是想创建自己的网站,还是希望通过学习Django提升自己的编程技能,这本书都是一个值得推荐的资源。 ### 回答3: 《Django3 入门与实践》是一本介绍Django框架的书籍,通过阅读该书可以帮助读者快速入门并实践Django3的开发。 这本书从基础概念开始,详细介绍了Django框架的各个组件以及它们的作用,包括模型(Model)、视图(View)、模板(Template)等。读者可以通过逐步学习这些内容来掌握如何使用Django进行Web应用的开发。 书中还提供了大量的实例和案例,通过实际的项目示范,帮助读者理解和掌握Django的开发流程和技巧。这些示例项目涵盖了常见的Web开发需求,如用户认证、数据管理、表单处理、静态文件处理等。读者可以通过跟随书中的示例代码和说明,一步步实践这些项目,并逐渐提升自己的Django开发能力。 此外,《Django3 入门与实践》还介绍了Django的一些高级特性和扩展,如管理后台(Admin)的使用、数据库迁移(Migration)、国际化(Internationalization)等。这些内容为读者提供了更多的选择和拓展,使得他们可以根据实际需求使用Django框架构建更加强大和灵活的Web应用。 总之,通过阅读《Django3 入门与实践》,读者可以系统地学习和实践Django框架的基础知识和开发技巧,为其在Web开发领域打下坚实的基础。无论是想入门Django3的初学者,还是希望提升Django开发能力的开发者,这本书都是一个很好的选择。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

weer-wmq

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值