设为首页 加入收藏

TOP

3. 投票 案例项目(合集)(一)
2023-07-25 21:24:36 】 浏览:232
Tags:投票 项目 合集

3.投票-1创建项目和子应用

创建项目

  • 命令
    $ python django-admin startproject mysite
    
  • 目录结构
    
    
    mysite/               # 项目容器、可任意命名
        manage.py         # 命令行工具
        mysite/           # 纯 Python 包 # 你引用任何东西都要用到它
            __init__.py   # 空文件 告诉Python这个目录是Python包
            settings.py   # Django 项目配置文件
            urls.py       # URL 声明  # 就像网站目录
            asgi.py       # 部署时用的配置 # 运行在ASGI兼容的Web服务器上的 入口
            wsgi.py       # 部署时用的配置 # 运行在WSGI兼容的Web服务器上的 
    
    
  • 初始化数据库 迁移
    $ python mangae.py makemigrations
    
    $ python manage.py migrate
    

Django 简易服务器

  • 用于开发使用,Django 在网络框架方面很NB, 但在网络服务器方面不行~

    专业的事让专业的程序做嘛,最后部署到 Nginx Apache 等专业网络服务器上就行啦。

  • 自动重启服务器

    对每次访问请求、重新载入一遍 Python 代码

    新添加文件等一些操作 不会触发重启

  • 命令

    $ python manage.py runserver
    
    E:\PYTHON\0CODE\mysite>
    E:\PYTHON\0CODE\mysite>python manage.py runserver
    Watching for file changes with StatReloader
    Performing system checks...
    
    System check identified no issues (0 silenced).
    June 29, 2022 - 22:35:10
    Django version 4.0.5, using settings 'mysite.settings'
    Starting development server at http://127.0.0.1:8000/
    Quit the server with CTRL-BREAK.
    
  • 指定端口

    $ python manage.py runserver 8080
    

创建应用


  • 命令
    $ python manage.py startapp polls
    
  • 目录结构
    polls/
        __init__.py
        admin.py
        apps.py
        migrations/
            __init__.py
        models.py
        tests.py
        views.py
    

编写应用视图

  • 视图函数
    # polls/views.py
    
    from django.shortcuts import render
    
    # Create your views here.
    
    from django.http import HttpRespose
    
    
    def index(rquest):
    
        return HttpResponse("投票应用 -首页")
    

配置路由

  • 配置路由

    # polls/urls.py  子应用路由
    
    from django.urls import path
    
    from . import views
    
    urlpatterns = [
        path('', views.index, name='index'),
    ]
    
    # mysite/urls.py  全局路由 include()即插即用
    
    from django.contrib import admin
    from django.urls import include, path
    
    urlpatterns = [
        path('polls/', include('polls.urls')),
        path('admin/', admin.site.urls),
    ]
    
  • 效果

    截图



path() 参数含义


path('', views.index, name='index'),
path('polls/', include('polls.urls'))
  • route 路径

    一个匹配URL的规则,类似正则表达式。不匹配GET、POST传参 、域名

  • view 视图函数

     Django 调用这个函数,默认传给函数一个 HttpRequest 参数
    
  • kwargs 视图函数参数

    字典格式

  • name 给这条URL取一个温暖的名子~

    可以在 Django 的任意地方唯一的引用。允许你只改一个文件就能全局地修改某个 URL 模式。

3.投票-2本地化和数据库API

本地化配置

  • 时区和语言

    # mysite/mysite/settings.py
    
    # Internationalization
    # https://docs.djangoproject.com/en/4.0/topics/i18n/
    
    LANGUAGE_CODE = 'zh-hans'   # 'en-us'
    
    TIME_ZONE = 'UTC'
    
    USE_I18N = True
    
    USE_TZ = True
    
    
  • 为啥要在数据库之前?

    配置时区,数据库可以以此做相应配置。比如时间的存放是以UTC还是本地时间...


数据库配置

  • django 支持 sqlite mysql postgresql oracle
  • 默认是sqlite 它是本地的一个文件name 哪里直接写了文件的绝对路径
    # mysite/mysite/settings.py
    
    # Database
    # https://docs.djangoproject.com/en/4.0/ref/settings/#databases
    
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.sqlite3',
            'NAME': BASE_DIR / 'db.sqlite3',
        }
    }
    
    
  • 迁移 主要为Django默认的模型建表
    python manage.py migrate
    

创建模型


  • 编写

    # mysite/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)
    
  • 很多数据库的知识 都可以用到里面

    Question Choice 类都是基于models.Model, 是它的子类。

    类的属性--------表的字段

    类名-----------表名

    还有pub_date on_delete=models.CASCAD 级联删除, pub_date 的字段描述, vo tes的默认值, 都和数据库很像。

    而且max_length这个个字段,让Django可以在前端自动校验我们的数据

激活模型


  • 把配置注册到项目

    # mysite/mysite/settings.py
    
    # Application definition
    
    INSTALL
首页 上一页 1 2 3 4 5 6 7 下一页 尾页 1/12/12
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇中文标题相似度检测 下一篇影片自由,丝滑流畅,Docker容器基..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目