python 学习34

django 02

我们使用pycharm创建一个django,项目名为gy_01,app名为blog_user。

我们首先来做一个显示用户注册的页面

1.使用mysql创建一个数据库用来储存用户名和密码

create database p7_bolg;

2.编写模型(这个模型为数据库中模型在程序中的一个映射),在blog_user 中的models.py中创建:

from django.db import models

# Create your models here.
class BlogUser(models.Model):
    userName=models.CharField(max_length=20)
    passWord=models.CharField(max_length=20)

设置了用户名和密码为字符串型,且最大长度为20

3.运用manger.py使django与数据库建立联系。在manger.py中执行shall命令,pycharm中快捷键为Ctrl+Alt+R,执行后会进入如下界面:


4.我们需要安装mysqlclient,用来更改数据库的连接引擎

我们使用pip 安装,在mad中运行:pip install mysqlclient;

注意的是:你安装的mysqlclient的版本必须与你安装的python版本对应!!!

5.在安装好之后,我们需要在数据库中生成我们编写模型的表


回车之后在blog_user中的migration文件夹中会自动创建一个0001_initial.py的文件。

然后再执行:


回车之后他会创建一个名为blog_user_bloguser的表,但是并没有被提交到数据库中,我们还需输入这样一条命令:


最后我们需要在settings.py中创建数据库的连接项:


需要填写自己mysql账号以及密码,默认本机(localhost)与端口(为3306)。

刷新p7_bolg数据库,会发现有两张表blog_user_bloguser和django_migrations。

6.之后我们需要在templates中创建一个user文件夹,里面再创建一个register.html,用来访问:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form>
    <p>
        用户名: <input type="text">
    </p>
    <p>
        密码: <input type="password">
    </p>
    <p>
        <input type="submit" value="注册">
    </p>
</form>
</body>
</html>

7.我们在之前以及了了解过django的MTV模式,除此之外还有url分发器,现在我们就需要在urls.py中编写代码,使用户输入的 网站能够分到我们编写的注册页面register.html上。

流程是这样的:

urls.py  ---->blog_user.urls.py----->blog_user.view.py----->register.html

我们一步一步的来编写:

首先写blog_user.view.py

from django.shortcuts import render,reverse

# Create your views here.

def register(request):  #用来处理用户请求注册的命令

    return render(request,'user/register.html',{})

接着我们在blog_user中创建一个urls.py,在其中编写:

#usr/bin/python
#-*-coding:utf-8-*-
from django.urls import path
from blog_user import views

app_name='user'
urlpatterns = [
    path('register/',views.register ),
]

最后我们需要在总分发器urls.py中添加:

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

urlpatterns = [
    path('admin/', admin.site.urls),
    path('user/', include('blog_user.urls',namespace='user')),
]

最后我们需要更改settings.py中的TEMPLATES,具体如下:

#首先我们需要编写如下一条语句
TEMPLATE_DIRS = (os.path.join(BASE_DIR,  'templates'),)

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR,  'templates')],  #接着在DIRS中添加
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

因为我们写的TEMPLATE是一个元组,所以我们在DIRS那里不能直接写TEMPLATE,而必须写这个元组的 第一项!!!

最后我们打开网页:http://127.0.0.1:8000/user/register


即可显示我们创建的注册页面。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用深度学习进行图像去雾的Python代码示例,使用的是AOD-Net去雾网络的PyTorch实现: ```python import torch import torch.nn as nn import torch.nn.functional as F import numpy as np from PIL import Image # 定义AOD-Net去雾网络 class AODNet(nn.Module): def __init__(self): super(AODNet, self).__init__() self.conv1 = nn.Conv2d(3, 3, kernel_size=3, stride=1, padding=1, bias=False) self.bn1 = nn.BatchNorm2d(3) self.relu1 = nn.ReLU(inplace=True) self.conv2 = nn.Conv2d(3, 3, kernel_size=3, stride=1, padding=1, bias=False) self.bn2 = nn.BatchNorm2d(3) self.relu2 = nn.ReLU(inplace=True) self.conv3 = nn.Conv2d(3, 3, kernel_size=3, stride=1, padding=1, bias=False) self.bn3 = nn.BatchNorm2d(3) self.relu3 = nn.ReLU(inplace=True) self.conv4 = nn.Conv2d(3, 3, kernel_size=3, stride=1, padding=1, bias=False) self.bn4 = nn.BatchNorm2d(3) self.relu4 = nn.ReLU(inplace=True) self.conv5 = nn.Conv2d(3, 3, kernel_size=3, stride=1, padding=1, bias=False) self.bn5 = nn.BatchNorm2d(3) self.relu5 = nn.ReLU(inplace=True) self.conv6 = nn.Conv2d(3, 3, kernel_size=3, stride=1, padding=1, bias=False) self.bn6 = nn.BatchNorm2d(3) self.relu6 = nn.ReLU(inplace=True) self.conv7 = nn.Conv2d(3, 3, kernel_size=3, stride=1, padding=1, bias=False) self.bn7 = nn.BatchNorm2d(3) self.relu7 = nn.ReLU(inplace=True) self.conv8 = nn.Conv2d(3, 3, kernel_size=3, stride=1, padding=1, bias=False) self.bn8 = nn.BatchNorm2d(3) self.relu8 = nn.ReLU(inplace=True) self.conv9 = nn.Conv2d(3, 3, kernel_size=3, stride=1, padding=1, bias=False) self.bn9 = nn.BatchNorm2d(3) self.relu9 = nn.ReLU(inplace=True) self.conv10 = nn.Conv2d(3, 3, kernel_size=3, stride=1, padding=1, bias=False) self.bn10 = nn.BatchNorm2d(3) self.relu10 = nn.ReLU(inplace=True) self.conv11 = nn.Conv2d(3, 3, kernel_size=3, stride=1, padding=1, bias=False) self.bn11 = nn.BatchNorm2d(3) self.relu11 = nn.ReLU(inplace=True) self.conv12 = nn.Conv2d(3, 3, kernel_size=3, stride=1, padding=1, bias=False) self.bn12 = nn.BatchNorm2d(3) self.relu12 = nn.ReLU(inplace=True) self.conv13 = nn.Conv2d(3, 3, kernel_size=3, stride=1, padding=1, bias=False) self.bn13 = nn.BatchNorm2d(3) self.relu13 = nn.ReLU(inplace=True) self.conv14 = nn.Conv2d(3, 3, kernel_size=3, stride=1, padding=1, bias=False) self.bn14 = nn.BatchNorm2d(3) self.relu14 = nn.ReLU(inplace=True) self.conv15 = nn.Conv2d(3, 3, kernel_size=3, stride=1, padding=1, bias=False) self.bn15 = nn.BatchNorm2d(3) self.relu15 = nn.ReLU(inplace=True) self.conv16 = nn.Conv2d(3, 3, kernel_size=3, stride=1, padding=1, bias=False) self.bn16 = nn.BatchNorm2d(3) self.relu16 = nn.ReLU(inplace=True) self.conv17 = nn.Conv2d(3, 3, kernel_size=3, stride=1, padding=1, bias=False) self.bn17 = nn.BatchNorm2d(3) self.relu17 = nn.ReLU(inplace=True) self.conv18 = nn.Conv2d(3, 3, kernel_size=3, stride=1, padding=1, bias=False) self.bn18 = nn.BatchNorm2d(3) self.relu18 = nn.ReLU(inplace=True) self.conv19 = nn.Conv2d(3, 3, kernel_size=3, stride=1, padding=1, bias=False) self.bn19 = nn.BatchNorm2d(3) self.relu19 = nn.ReLU(inplace=True) self.conv20 = nn.Conv2d(3, 3, kernel_size=3, stride=1, padding=1, bias=False) self.bn20 = nn.BatchNorm2d(3) self.relu20 = nn.ReLU(inplace=True) self.conv21 = nn.Conv2d(3, 3, kernel_size=3, stride=1, padding=1, bias=False) self.bn21 = nn.BatchNorm2d(3) self.relu21 = nn.ReLU(inplace=True) self.conv22 = nn.Conv2d(3, 3, kernel_size=3, stride=1, padding=1, bias=False) self.bn22 = nn.BatchNorm2d(3) self.relu22 = nn.ReLU(inplace=True) self.conv23 = nn.Conv2d(3, 3, kernel_size=3, stride=1, padding=1, bias=False) self.bn23 = nn.BatchNorm2d(3) self.relu23 = nn.ReLU(inplace=True) self.conv24 = nn.Conv2d(3, 3, kernel_size=3, stride=1, padding=1, bias=False) self.bn24 = nn.BatchNorm2d(3) self.relu24 = nn.ReLU(inplace=True) self.conv25 = nn.Conv2d(3, 3, kernel_size=3, stride=1, padding=1, bias=False) self.bn25 = nn.BatchNorm2d(3) self.relu25 = nn.ReLU(inplace=True) self.conv26 = nn.Conv2d(3, 3, kernel_size=3, stride=1, padding=1, bias=False) self.bn26 = nn.BatchNorm2d(3) self.relu26 = nn.ReLU(inplace=True) self.conv27 = nn.Conv2d(3, 3, kernel_size=3, stride=1, padding=1, bias=False) self.bn27 = nn.BatchNorm2d(3) self.relu27 = nn.ReLU(inplace=True) self.conv28 = nn.Conv2d(3, 3, kernel_size=3, stride=1, padding=1, bias=False) self.bn28 = nn.BatchNorm2d(3) self.relu28 = nn.ReLU(inplace=True) self.conv29 = nn.Conv2d(3, 3, kernel_size=3, stride=1, padding=1, bias=False) self.bn29 = nn.BatchNorm2d(3) self.relu29 = nn.ReLU(inplace=True) self.conv30 = nn.Conv2d(3, 3, kernel_size=3, stride=1, padding=1, bias=False) self.bn30 = nn.BatchNorm2d(3) self.relu30 = nn.ReLU(inplace=True) self.conv31 = nn.Conv2d(3, 3, kernel_size=3, stride=1, padding=1, bias=False) self.bn31 = nn.BatchNorm2d(3) self.relu31 = nn.ReLU(inplace=True) self.conv32 = nn.Conv2d(3, 3, kernel_size=3, stride=1, padding=1, bias=False) self.bn32 = nn.BatchNorm2d(3) self.relu32 = nn.ReLU(inplace=True) self.conv33 = nn.Conv2d(3, 3, kernel_size=3, stride=1, padding=1, bias=False) self.bn33 = nn.BatchNorm2d(3) self.relu33 = nn.ReLU(inplace=True) self.conv34 = nn.Conv2d(3, 3, kernel_size=3, stride=1, padding=1, bias=False) self.bn34 = nn.BatchNorm2d(3) self.relu34 = nn.ReLU(inplace=True) self.conv35 = nn.Conv2d(3, 3, kernel_size=3, stride=1, padding=1, bias=False) self.bn35 = nn.BatchNorm2d(3) self.relu35 = nn.ReLU(inplace=True) self.conv36 = nn.Conv2d(3, 3, kernel_size=3, stride=1, padding=1, bias=False) self.bn36 = nn.BatchNorm2d(3) self.relu36 = nn.ReLU(inplace=True) self.conv37 = nn.Conv2d(3, 3, kernel_size=3, stride=1, padding=1, bias=False) self.bn37 = nn.BatchNorm2d(3) self.relu37 = nn.ReLU(inplace=True) self.conv38 = nn.Conv2d(3, 3, kernel_size=3, stride=1, padding=1, bias=False) self.bn38 = nn.BatchNorm2d(3) self.relu38 = nn.ReLU(inplace=True) self.conv39 = nn.Conv2d(3, 3, kernel_size=3, stride=1, padding=1, bias=False) self.bn39 = nn.BatchNorm2d(3) self.relu39 = nn.ReLU(inplace=True) self.conv40 = nn.Conv2d(3, 3, kernel_size=3, stride=1, padding=1, bias=False) self.bn40 = nn.BatchNorm2d(3) self.relu40 = nn.ReLU(inplace=True) self.conv41 = nn.Conv2d(3, 3, kernel_size=3, stride=1, padding=1, bias=False) self.bn41 = nn.BatchNorm2d(3) self.relu41 = nn.ReLU(inplace=True) self.conv42 = nn.Conv2d(3, 3, kernel_size=3, stride=1, padding=1, bias=False) self.bn42 = nn.BatchNorm2d(3) self.relu42 = nn.ReLU(inplace=True) self.conv43 = nn.Conv2d(3, 3, kernel_size=3, stride=1, padding=1, bias=False) self.bn43 = nn.BatchNorm2d(3) self.relu43 = nn.ReLU(inplace=True) self.conv44 = nn.Conv2d(3, 3, kernel_size=3, stride=1, padding=1, bias=False) self.bn44 = nn.BatchNorm2d(3) self.relu44 = nn.ReLU(inplace=True) self.conv45 = nn.Conv2d(3, 3, kernel_size=3, stride=1, padding=1, bias=False) self.bn45 = nn.BatchNorm2d(3) self.relu45 = nn.ReLU(inplace=True) self.conv46 = nn.Conv2d(3, 3, kernel_size=3, stride=1, padding=1, bias=False) self.bn46 = nn.BatchNorm2d(3) self.relu46 = nn.ReLU(inplace=True) self.conv47 = nn.Conv2d(3, 3, kernel_size=3, stride=1, padding=1, bias=False) self.bn47 = nn.BatchNorm2d(3) self.relu47 = nn.ReLU(inplace=True) self.conv48 = nn.Conv2d(3, 3, kernel_size=3, stride=1, padding=1, bias=False) self.bn48 = nn.BatchNorm2d(3) self.relu48 = nn.ReLU(inplace=True) self.conv49 = nn.Conv2d(3, 3, kernel_size=3, stride=1, padding=1, bias=False) self.bn49 = nn.BatchNorm2d(3) self.relu49 = nn.ReLU(inplace=True) self.conv50 = nn.Conv2d(3, 3, kernel_size=3, stride=1, padding=1, bias=False) self.bn50 = nn.BatchNorm2d(3) self.relu50 = nn.ReLU(inplace=True) self.conv51 = nn.Conv2d(3, 3, kernel_size=3, stride=1, padding=1, bias=False) self.bn51 = nn.BatchNorm2d(3) self.relu51 = nn.ReLU(inplace=True) self.conv52 = nn.Conv2d(3, 3, kernel_size=3, stride=1, padding=1, bias=False) self.bn52 = nn.BatchNorm2d(3) self.relu52 = nn.ReLU(inplace=True) self.conv53 = nn.Conv2d(3, 3, kernel_size=3, stride=1, padding=1, bias=False) self.bn53 = nn.BatchNorm2d(3) self.relu53 = nn.ReLU(inplace=True) self.conv54 = nn.Conv2d(3, 3, kernel_size=3, stride=1, padding=1, bias=False) self.bn54 = nn.BatchNorm2d(3) self.relu54 = nn.ReLU(inplace=True) self.conv55 = nn.Conv2d(3, 3, kernel_size=3, stride=1, padding=1, bias=False) self.bn55 = nn.BatchNorm2d(3) self.relu55 = nn.ReLU(inplace=True) self.conv56 = nn.Conv2d(3, 3, kernel_size=3, stride=1, padding=1, bias=False) self.bn56 = nn.BatchNorm2d(3) self.relu56 = nn.ReLU(inplace=True) self.conv57 = nn.Conv2d(3, 3, kernel_size=3, stride=1, padding=1, bias=False)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值