美文网首页
Django框架学习 - 初始Django

Django框架学习 - 初始Django

作者: A二十一画 | 来源:发表于2023-03-01 09:37 被阅读0次

    本文章是跟着官方文档的一个简单投票系统示例来了解Django的基础架构。里面主要为官方文档中的东西,有少数部分加上自己的理解和知识点的解释。

    这个投票应用程序包括两个部分:
    -- 对外展示的查看和投票的公共站点(相当于web端)
    -- 对内添加、修改和删除投票信息的管理站点(相当于后台管理)

    创建项目

    示例代码在本机存放位置为:D:\XYFiles\GiteeSpaces\Personal_route\study_djan
    同时,代码会同步到Gitee()上
    编写代码使用VSCode,基本操作都会在里面实现

    在VSCode的终端cd到study_djan目录下,运行以下命令创建Django项目

    django-admin startproject mysite
    

    在执行完成后,我们可以看到左侧的目录栏会多出几个文件

    202302021417579.png

    我们来简单解释一下这些文件的作用

    mysite/ # 根目录为项目名称,可以按照项目自行更
        manage.py # 用于管理Django的命令行工具,可以通过这个文件进行启动django
        mysite/ # Python包,后面在文件中引用时需要使用的,例如:mysite.urls
            __init__.py # 空文件,不做解释
            settings.py # Django项目配置文件
            urls.py # Django项目的URL声明,也就是路由,通过web访问路径来判断转发到相对应的模块
            asgi.py # ASGI兼容的web服务入口
            wsgi.py # WSGI兼容的web服务入口
    

    当创建一个项目之后,可以通过运行访问来测试一下,需要进入manage.py同级目录运行

    python manage.py runserver 0.0.0.0:8000
    

    当使用浏览器访问时(127.0.0.1:8000),可以从网页看到Django的欢迎页面

    202303011412365.png

    创建应用

    项目 VS 应用
    项目和应用有什么区别?应用是一个专门做某件事的网络应用程序——比如博客系统,或者公共记录的数据库,或者小型的投票程序。项目则是一个网站使用的配置和应用的集合。项目可以包含很多个应用。应用可以被很多个项目使用。

    修改数据库

    在创建应用之前,先将Django默认数据库db.sqlite3修改为常用的数据库MySQL

    修改mysite/setting.py

    在修改前后,我们需要在数据库中先创建django_local_win

    ...
    DATABASES = {
        'default': {
            # 'ENGINE': 'django.db.backends.sqlite3',
            # 'NAME': BASE_DIR / 'db.sqlite3',
            'ENGINE': 'django.db.backends.mysql',  # 数据库引擎
            'NAME': 'django_local_win',  # 数据库名称
            'HOST': '127.0.0.1',  # 数据库地址,本机 ip 地址 127.0.0.1
            'PORT': 3306,  # 端口
            'USER': 'root',  # 数据库用户名
            'PASSWORD': 'rootroot',  # 数据库密码
        }
    }
    ...
    

    修改mysite/__init__.py

    # mysite/__init__.py初始为空,需要添加以下内容才能正常使用MySQL
    import pymysql
    pymysql.install_as_MySQLdb()
    

    在数据库中
    类名对应 ---> 数据库中的表名
    类属性对应 ---> 数据库里的字段
    类实例对应 ---> 数据库表里的一行数据

    投票应用

    mysite/manage.py目录下创建一个应用

    python manage.py startapp polls 
    

    再创建之后一样会和项目一样创建出几个文件,后面会解释一下各个文件的作用

    polls/
        migrations/
            __init__.py
        __init__.py
        admin.py
        apps.py
        models.py
        tests.py
        views.py
    

    创建视图

    编写mysite/polls/view.py

    from django.shortcuts import render
    from django.http import HttpResponse
    
    # Create your views here.
    
    def index(request):
        return HttpResponse("Hellow Wrold!. You're at the polls index.")
    

    创建URLconf

    创建完视图之后,需要有路径指定到视图的位置,所以我们需要在polls里创建一个urls.py,即mysite/polls/urls.py,并写入以下内容

    from django.urls import path
    from . import views
    
    urlpatterns = [
        path('', views.index, name='index')
    ]
    

    在polls中设置了URLconf,但是我们访问时是从manage.py进入的,也就是我们要在mysite中也要设置一条来指定到polls/urls.py

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

    关于django.urls中的include

    函数 include() 允许引用其它 URLconfs。每当 Django 遇到 include() 时,它会截断与此项匹配的 URL 的部分,并将剩余的字符串发送到 URLconf 以供进一步处理。

    我们设计 include() 的理念是使其可以即插即用。因为投票应用有它自己的 URLconf( polls/urls.py ),他们能够被放在 "/polls/" , "/fun_polls/" ,"/content/polls/",或者其他任何路径下,这个应用都能够正常工作。

    当包括其它 URL 模式时你应该总是使用 include()admin.site.urls 是唯一例外。

    此时我们再次运行python manage.py runserver 0.0.0.0:8000,我们在网页浏览127.0.0.1:8000/polls,可以看到

    202302091427585.png

    相关文章

      网友评论

          本文标题:Django框架学习 - 初始Django

          本文链接:https://www.haomeiwen.com/subject/wsmrldtx.html