Django入门(一)

声明:本文是学习https://docs.djangoproject.com/zh-hans/2.2/文档后,笔者学后总结的精简板,适合快速入门,会引用上面的,想看完整板可以去上面的网址= ̄ω ̄=

安装Django:

pip install Django

创建项目

django-admin startproject mysite

会得到一个简易的工程,文件格式如下:

mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        wsgi.py

manage.py: 一个让你用各种方式管理 Django 项目的命令行工具。你可以阅读 django-admin and manage.py 获取所有 manage.py 的细节。
里面一层的 mysite/ 目录包含你的项目,它是一个纯 Python 包。它的名字就是当你引用它内部任何东西时需要用到的 Python 包名。 (比如 mysite.urls).
mysite/init.py:一个空文件,告诉 Python 这个目录应该被认为是一个 Python 包。
mysite/settings.py:Django 项目的配置文件。如果你想知道这个文件是如何工作的,请查看 Django 配置 了解细节。
mysite/urls.py:Django 项目的 URL 声明,就像你网站的“目录”。
mysite/wsgi.py:作为你的项目的运行在 WSGI 兼容的Web服务器上的入口。阅读 如何使用 WSGI 进行部署 了解更多细节。

运行程序:

python manage.py runserver

输出:

Watching for file changes with StatReloader
Performing system checks...

System check identified no issues (0 silenced).

You have 17 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
June 26, 2019 - 10:20:00
Django version 2.2.2, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
[26/Jun/2019 10:20:11] "GET / HTTP/1.1" 200 16348
[26/Jun/2019 10:20:11] "GET /static/admin/css/fonts.css HTTP/1.1" 200 423
[26/Jun/2019 10:20:11] "GET /static/admin/fonts/Roboto-Light-webfont.woff HTTP/1.1" 200 85692
[26/Jun/2019 10:20:11] "GET /static/admin/fonts/Roboto-Regular-webfont.woff HTTP/1.1" 200 85876
[26/Jun/2019 10:20:11] "GET /static/admin/fonts/Roboto-Bold-webfont.woff HTTP/1.1" 200 86184
Not Found: /favicon.ico
[26/Jun/2019 10:20:12] "GET /favicon.ico HTTP/1.1" 404 1972

打开http://127.0.0.1:8000出现火箭就成功了
更改端口可以:

python manage.py runserver 8080

在运行后面加上要改的端口号

创建应用,直接在目录下面运行 :

python manage.py startapp polls

会出现poll目录

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

这个是Django创建网站应用的方式
创建应用界面:
在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'),
]

表示打开页面时执行view.index函数
在根目录URLconf中指定应用urls模块,在在 mysite/urls.py 文件的 urlpatterns 列表里插入一个 include():

from django.contrib import admin
from django.urls import include, path

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

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

py manage.py runserver

打开http://localhost:8000/polls/会看到页面
函数path(),两个必须参数:route 和 view,两个可选参数:kwargs 和 name
route 是一个匹配 URL 的准则(类似正则表达式)。当 Django 响应一个请求时,它会从 urlpatterns 的第一项开始,按顺序依次匹配列表中的项,直到找到匹配的项。
view:视图
name:为你的 URL 取名能使你在 Django 的任意地方唯一地引用它,尤其是在模板中。这个有用的特性允许你只改一个文件就能全局地修改某个 URL 模式。

Django 数据库应用:
在mysite/settings.py中的INSTALLED_APPS包含所有的应用,一般包含:
django.contrib.admin – 管理员站点, 你很快就会使用它。
django.contrib.auth – 认证授权系统。
django.contrib.contenttypes – 内容类型框架。
django.contrib.sessions – 会话框架。
django.contrib.messages – 消息框架。
django.contrib.staticfiles – 管理静态文件的框架。
创建模型:
数据库驱动的 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)

每个模型表示django.db.models.Model类中的每一个子类
每一个模型的类变量,都表示模型中一个数据库的字段
每个字段都是 Field 类的实例 - 比如,字符字段被表示为 CharField ,日期时间字段被表示为 DateTimeField 。
每个 Field 类实例变量的名字(例如 question_text 或 pub_date )也是字段名。
定义某些 Field 类实例需要参数。例如 CharField 需要一个 max_length 参数。
Field 也能够接收多个可选参数;在上面的例子中:我们将 votes 的 default 也就是默认值,设为0。
使用 ForeignKey 定义了一个关系。这将告诉 Django,每个 Choice 对象都关联到一个 Question 对象。Django 支持所有常用的数据库关系:多对一、多对多和一对一。
通过上述的模型文件Django可以创建

  1. 为这个应用创建数据库 schema(生成 CREATE TABLE 语句)。
  2. 创建可以与 Question 和 Choice 对象进行交互的 Python 数据库 API。
    将polls应用引入web项目,在settings.py中加入INSTALLED_APPS中添加路径:
INSTALLED_APPS = [
    'polls.apps.PollsConfig',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

运行

python manage.py makemigrations polls

通过运行 makemigrations 命令,Django 会检测你对模型文件的修改,并且把修改的部分储存为一次 迁移。

迁移是 Django 对于模型定义(也就是你的数据库结构)的变化的储存形式 它被储存在 polls/migrations/0001_initial.py

migrate :Django 中自动执行数据库迁移并同部管理数据库结构的命令
sqlmigrate:通过这个命令可以得到Django在进行数据迁移时使用的sql命令
python manage.py check可以检查项目中的问题,检查过程不会对数据库进行操作
这个 migrate 命令选中所有还没有执行过的迁移(Django 通过在数据库中创建一个特殊的表 django_migrations 来跟踪执行过哪些迁移)并应用在数据库上 - 也就是将你对模型的更改同步到数据库结构上。
改变模型三步:
编辑 models.py 文件,改变模型。
运行 python manage.py makemigrations 为模型的改变生成迁移文件。
运行 python manage.py migrate 来应用数据库迁移。

Django API:

python manage.py shell

出现类似python shell 能在里面进行一些API操作
Django 管理页面:
创建登陆用户:

python manage.py createsuperuser

按照提示输入用户名和密码
启动服务器后在http://127.0.0.1:8000/admin/进入登陆界面:
在这里插入图片描述
在这个页面能设定用户和组
在管理页面加入应用:
在mysite/admin中进行注册:

from django.contrib import admin

from .models import Question

admin.site.register(Question)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值