Django基础Django入门

Posted Ricky_0528

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django基础Django入门相关的知识,希望对你有一定的参考价值。

文章目录

1. Django项目的创建

django-admin[.py] startproject my_project

2. Django项目目录结构

  • my_project # 项目目录
    • __init__.py # 包的入口文件
    • settings.py # 项目配置文件
    • urls.py # url访问地址配置文件
    • wsgi.py # 部署配置
    • asgi.py # 部署配置
  • db.sqlite3 # sqllite数据库
  • manage.py # 命令行管理工具

3. 开发流程

3.1 启动开发服务器

python manage.py runserver

runserver常用参数

指定端口

python manage.py runserver 9527

指定及端口

需要在settings.py配置ALLOWED_HOSTS

python manage.py runserver 0.0.0.0:9527

3.2 创建模块

例如创建一个hello模块

python manage.py startapp hello

3.3 完成第一个页面

  • 在views.py文件写个函数
  • 在urls.py配置规则

4. 从请求到响应

视图函数的作用:接收一个请求,返回一个响应

4.1 URL的设计

设计简单优雅的URL

  • 使用正则表达式
  • 指定参数类型
# 固定的URL类型,字符串
# /hello
path('hello/', hello_world)
# 指定参数类型
# /article/5000
path('/article/<int>', article)
# 使用正则表达式

4.2 URL的常用配置

  • path (route, view, name, **kwargs)函数
    • route:URL匹配规则
    • view:视图函数
    • name:路由的名称(可选)
    • **kwargs:其他参数
  • include (urls, namespace)函数
    • urls:URL匹配规则列表
    • namespace:命名空间

setting.py里面的ROOT_URLCONF表示根路径下的URL配置规则指定到的位置是哪一个urls

根路径下的urls.py

from django.contrib import admin
from django.urls import path, include
from hello.views import hello_world

urlpatterns = [
    path('admin/', admin.site.urls),
    # 固定的URL类型,字符串
    # /hello
    # path('hello/', hello_world)
    # 指定参数类型
    # /article/<int>
    # /article/50001
    # 使用正则表达式

    path('hello/', include('hello.urls'))
]

模块下的urls.py

from django.urls import path

from hello.views import hello_world, hello_china

urlpatterns = [
    path('world/', hello_world, name='hello_world'),
    path('china/', hello_china, name='hello_china')
]

这样就将这两个路径整合起来了,hello下有两个页面world和china

http://192.168.1.5:9527/hello/world/

http://192.168.1.5:9527/hello/china/

4.3 URL与视图的关系

  • URL的正向解析

    通过URL解析URL规则找到视图函数

  • URL的逆向解析(通过视图函数的name来解析,可用于重定向等等)

    通过视图函数的视图名+参数解析到URL

4.4 小结

视图函数响应的内容可以是:文本、html内容、图像、甚至是404、重定向等等

视图是一个Python函数,用来处理http请求

通过path和include配置,将URL和视图函数关系建立起来

5. 在视图中处理业务逻辑

5.1 响应HTML内容

def hello_html(request):
    html = """
    <html>
        <body>
            <h1 style="color:#f00">hello</h1>
        </body>
    </html>
    """
    return HttpResponse(html)

5.2 获取URL参数

  • 获取URL中的指定类型的参数

    path('article/<int:month>/', article_list, name='article_list')
    
    
    def article_list(request, month):
        '''
        :param month:今年某一个月的文章列表
        '''
        return HttpResponse(f'article: month')
    
  • 获取URL中的正则匹配的参数

    re_path(r'^article/(?P<month>0?[1-9]|1[012])/$', article_list, name='article_list')
    
    
    def article_list(request, month):
        '''
        :param month:今年某一个月的文章列表
        '''
        return HttpResponse(f'article: month')
    

5.3 获取GET参数

  • 获取请求中(GET/POST等)参数

    http://192.168.1.5:9527/hello/search/?search=ricky
    
    
    def search(request):
        content = request.GET.get('search', None)
        return HttpResponse(content)
    

以上是关于Django基础Django入门的主要内容,如果未能解决你的问题,请参考以下文章

Django基础Django入门

Django 基础快速入门

Django 基础快速入门

博客基础_django_python从入门到实践_小结

Django之入门 CMDB系统 基础环境

Django框架 之基础入门