Python Django 快速入门

1、项目的创建和运行

1、辅助文档点击进入Django官网中文手册
2、默认已装好Python
3、运行cmd安装Django4.0

pip install Django==4.0
安装高版本模块时如提示pip版本问题可执行已下命令升级pip
python -m pip install --upgrade pip

4、进入你自己的目录执行cmd使用Django-admin 创建项目FetchDataManagementPlatform

django-admin startproject FetchDataManagementPlatform

5、执行成功后用idea打开(vscode、pycham等都行)
项目目录结构及python选择
上图是Django的项目目录结构,以及代码报错时python版本选择。文件是做什么的暂时不讲(我也不清楚…)
6、启动项目
6.1、命令行启动

命令行启动
指定端口启动

python manage.py runserver 8080

6.2、idea工具启动
在这里插入图片描述
启动效果
在这里插入图片描述
注意指定端口启动需要在idea配置里加上参数 runserver 8080。
6.3 通过IP访问需要修改配置
IP访问配置

2、应用的创建

1、创建应用命令

python manage.py startapp mydata

2、创建应用的目录结构
创建的应用
3、开发视图
开发视图
视图代码

from django.http import HttpResponse
from django.shortcuts import render

# Create your views here.
def index(request):
    return HttpResponse("hello word!")

def add(request):
    return HttpResponse("add.........")

4、配置路由
第一步在主路由中添加mydata应用路由(注意路径后的斜杠…)

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

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

第二步在mydata应用中添加本地路由(将FetchDataManagementPlatform目录下urls.py拷贝一份到mydata中根据提示配置)

from django.urls import path
from . import views

urlpatterns = [
    path('',views.index,name="index"),
    path('add/',views.add,name="add"),
]

如图
在这里插入图片描述

5、启动后效果图
在这里插入图片描述

3、项目的模型

1、MySql数据库连接配置点击查看Django4.0其他连接配置官网文档
2、辅助工作,建库、建表

mysql -uroot -p123456
1、建库并使用
create database  mydata;
use mydata;

2、建表request_table
DROP TABLE IF EXISTS `request_table`;
CREATE TABLE `request_table` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
  `req_method` int(2) DEFAULT NULL COMMENT '请求方式',
  `req_addr` varchar(2000) DEFAULT NULL COMMENT '请求地址',
  `req_headers` varchar(2000) DEFAULT NULL COMMENT '请求头',
  `req_body` blob COMMENT '请求体',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

3、加入一条数据:
INSERT INTO `mydata`.`request_table` (`id`, `req_method`, `req_addr`, `req_headers`, `req_body`) VALUES ('1', '1', 'https://www.toutiao.com', '  \"headers\": {\r\n    \"accept\": \"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9\",\r\n    \"accept-language\": \"zh-CN,zh;q=0.9\",\r\n    \"if-modified-since\": \"Wed, 08 Dec 2021 13:25:37 GMT\",\r\n    \"sec-ch-ua\": \"\\\" Not A;Brand\\\";v=\\\"99\\\", \\\"Chromium\\\";v=\\\"96\\\", \\\"Google Chrome\\\";v=\\\"96\\\"\",\r\n    \"sec-ch-ua-mobile\": \"?1\",\r\n    \"sec-ch-ua-platform\": \"\\\"Android\\\"\",\r\n    \"sec-fetch-dest\": \"document\",\r\n    \"sec-fetch-mode\": \"navigate\",\r\n    \"sec-fetch-site\": \"none\",\r\n    \"sec-fetch-user\": \"?1\",\r\n    \"upgrade-insecure-requests\": \"1啊啊啊\"\r\n  }', '{\r\n    \"id\": 给我数据.....\r\n}');

4、建表response_table
DROP TABLE IF EXISTS `response_table`;
CREATE TABLE `response_table` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT 'id',
  `req_id` bigint(20) DEFAULT NULL COMMENT '请求ID',
  `res_line` varchar(2000) DEFAULT NULL COMMENT '响应行',
  `res_headers` varchar(2000) DEFAULT NULL COMMENT '响应头',
  `res_body` blob COMMENT '响应正文',
  `req_time` varchar(30) DEFAULT NULL COMMENT '请求时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

3、在settings.py配置mysql数据库连接

DATABASES = {
    'default': {
        #'ENGINE': 'django.db.backends.sqlite3',
        #'NAME': BASE_DIR / 'db.sqlite3',
        'ENGINE': 'django.db.backends.mysql',
        'NAME':'mydata',
        'USER':'root',
        'PASSWORD':'123456',
        'HOST':'localhost',
        'PORT':'3307',
    }
}

如图:
mysql数据库连接配置
4、启动服务前需要安装mysqlclient

pip install mysqlclient

在这里插入图片描述
5、修改setting.py配置

添加:'mydata.apps.MydataConfig',  #或直接写mydata
使与下面保持一致
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'mydata.apps.MydataConfig',  #或直接写mydata
]
修改后台管理平台的语言和时区:
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'

6、在mydata应用的models.py下敲与数据库表RequestTable的映射

from django.db import models

# Create your models here.
class RequestTable(models.Model):
    id = models.BigIntegerField('ID',primary_key = True,db_column='id')
    reqMethod = models.IntegerField('请求方式',db_column='req_method')
    reqAddr = models.CharField('请求地址',max_length=2000,db_column='req_addr')
    reqHeaders = models.CharField('请求头',max_length=2000,db_column='req_headers')
    reqBody = models.TextField('请求体',db_column='req_body')

    def __str__(self):
        return "%d:%d:%s:%s:%s"%(self.id,self.reqMethod,self.reqAddr,self.reqHeaders,self.reqBody)

    class Meta:
        db_table="request_table"
        verbose_name = "请求信息展示"
        verbose_name_plural = '请求信息管理'

此时可以使用shell命令的方式查询数据库中数据操作如下:

python manage.py shell
from mydata.models import RequestTable
mod = RequestTable.objects
mod.get(id = 1)

如图:
命令查询数据库
7、在视图中使用model,通过请求显示表数据
修改mydata应用的views.py如下:

from django.shortcuts import render
from django.http import HttpResponse
from mydata.models import RequestTable

# Create your views here.
def index(res):
    return HttpResponse("hello word")
def add(res):
    mod = RequestTable.objects
    list = mod.all()
    for item in list:
        item.reqBody = bytes(item.reqBody).decode('gbk')
        print(item)
    print(mod.get(id = 1))
    return HttpResponse(list)

修改完成后点击启动,访问网页结果如图:
前台请求后台响应数据

4、启用网站admin管理

1、初始化数据表

python manage.py migrate

初始化后台管理系统表
2、创建超级管理员用户

python manage.py createsuperuser

用户创建步骤

3、配置后台管理样式
在mydata应用的admin.py中修改至如下:

from django.contrib import admin

# Register your models here.
from mydata.models import RequestTable
#固定写法一(默认排版)
# admin.site.register(RequestTable)

#固定写法二(稍微修改样式,请不要用于商业开发,否则修改样式灰常麻烦)
#RequestTable模型的管理器(装饰器写法
@admin.register(RequestTable)
class RequestTableAdmin(admin.ModelAdmin):
    #listdisplay设置要显示在列表中的字段(id字段是Django模板的默认主键)
    list_display = ('id','reqMethod','reqAddr','reqHeaders','reqBody')

    #设置哪些字段可以点击进入编辑界面
    list_display_links = ('id','reqAddr')

    #list_per_page设置每页显示多少条记录,默认是100条
    list_per_page = 8

    #ordering设置默认排序字段,负号表示降序排序
    ordering = ('id',)

    #list_editable 设置默认可编辑字段(注意此处不能与list_display_links内容重复否则报错......)
    list_editable = ('reqMethod','reqBody')

    #其他请详见手册文档说明

如图:
Django默认后台管理代码展示
4、登录后台管理系统查看详情
Django后台管理
后台的作用:可以增加用户、修改密码、查看应用(必须在代码中注册才能看到自己创建的应用)、查看表数据、新增表数据、修改表数据等。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值