程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长

+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

Python + Django 创建用户项目实例

发布于2020-02-21 15:28     阅读(859)     评论(0)     点赞(26)     收藏(3)


1 环境

python 3.7(一定要是python3)
django
windows 系统
mysql 数据库
编写工具用 IDEA 或者 pycharm 都可以
构建项目之前确认 python 等环境已搭建好(环境变量等都配好)

2 项目构建

2.1 创建项目

用 cmd 命令进入要创建项目的目录

## dir 为要创建项目的目录
cd dir
  • 1
  • 2

创建一个 Django 项目:

django-admin startproject PythonUser
  • 1

此时在之前的 dir 目录下会出现项目PythonUser
启动该项目, 进入 PythonUser 项目目录下:

cd dir/PythonUser 
python manage.py runserver 0.0.0.0:8000
## 或者使用命令
python3 manage.py runserver 0.0.0.0:8000
  • 1
  • 2
  • 3
  • 4

使用 0.0.0.0 使其他电脑可以连接到,8000 为启动端口,可以自己更改。
打开浏览器,访问 http://localhost:8000 或者 http://127.0.0.1:8000, 可以看到 django 界面表示项目创建成功。

2.2 创建模板

在 PythonUser 项目目录下,创建一个文件夹或者目录,命名为:templates,该目录下放置所有页面文件。
修改项目 settings.py 文件,在 settings.py 文件中搜索 “template”, 定位到该位置,修改 TEMPLATES 中的 DIRS 为 [BASE_DIR+"/templates",]

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [BASE_DIR+"/templates",],
        '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',
            ],
        },
    },
]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

2.3 配置数据库

如果没有安装过数据库驱动的安装一下驱动,使用命令:

pip install mysqlclient
  • 1

进行数据库配置,修改 settings.py 文件,在 settings.py 文件中搜索 “database”, 定位到该位置,修改数据库配置为:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'user',
        'USER': 'root',
        ## 设置自己的密码
        'PASSWORD': '****',
        'HOST':'localhost',
        'PORT':'3306',
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

2.4 创建模型

进入到 PythonUser 项目目录下,创建模型 UserModel, 使用命令:

## 注意位置不要弄错,要在项目的路径下,不要在 dir/PythonUser/PythonUser 下创建
cd dir/PythonUser
## 注意是 startapp, 创建 app, 不是 startproject,创建项目
django-admin startapp TestModel
  • 1
  • 2
  • 3
  • 4

修改 UserModel 下的 models.py 文件, 构建 user 数据库模型:

from django.db import models

# Create your models here.

class User(models.Model):
	// 设置 id 字段自增,否则存储的时候会存储该字段,其他字段相继前移,暂时没找到其他办法
    id = models.AutoField(primary_key=True)
    username = models.CharField(max_length=20)
    password = models.CharField(max_length=20)
    sex = models.CharField(max_length=20)
    age = models.CharField(max_length=3)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

修改 settings.py 文件, 在 settings.py 文件中搜索 “install”, 定位到该位置,修改“INSTALLED_APPS”为:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'UserModel',
]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

即把自己创建的 app 添加进来
创建表,使用命令:

$ python manage.py migrate   # 创建表结构

$ python manage.py makemigrations TestModel  # 让 Django 知道我们在我们的模型有一些变更
$ python manage.py migrate TestModel   # 创建表结构
  • 1
  • 2
  • 3
  • 4

创建成功后,会在数据库中查看到创建的表,表名为:UserModel_User
查看数据库命令为:

mysql -uroot -p
## 输入密码
show databases;
##  把user 改为自己的数据库名
use ‘user’
show tables;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

就可以看到自己创建的表了。

2.5 添加数据库操作代码

在 PythonUser 项目目录下创建 “userdb.py” 文件,内容为:

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

from UserModel.models import User

# 数据库操作,向数据库添加用户
def addUser(request):
    usernamevalue = request.GET['username']
    passwordvalue = request.GET['password']
    sexvalue = request.GET['sex']
    agevalue = request.GET['age']
    user = User(username = usernamevalue, password = passwordvalue, sex = sexvalue, age = agevalue)
    user.save()
    return HttpResponse("<p>数据添加成功!</p>")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

修改 UserModel 目录下的 views.py 文件,内容为:

from django.shortcuts import render
from PythonUser import userdb
from UserModel.models import User

# Create your views here.

def insertUser_form(request):
    return render(request, '../templates/insertUser.html')

def listUser(request):
    list = User.objects.all()
    return render(request, "../templates/list.html", {"users": list})

def search(request):
    usernamevalue = request.GET['select']
    list = User.objects.filter(username = usernamevalue)
    return render(request, "../templates/list.html", {"users": list})

def getUserById(request):
    id = request.GET['id']
    list = User.objects.filter(id = id)
    return render(request, "../templates/list.html", {"users": list})
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

2.6 创建页面

在 templates 目录下创建 “insertUser.html” 文件,该文件为添加用户页面,内容为:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="/addUser" method="get">
    用户名:<input type="text" name="username"></br>
    密  码:<input type="text" name="password"></br>
    性  别:<input type="radio" name="sex" value="0" />男&nbsp;&nbsp;<input type="radio" name="sex" value="1" />女</br>
    年  龄:<input type="text" name="age"></br>
    <input type="submit" value="添加">
</form>
</body>
</html>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

在 templates 目录下创建 “ilist.html” 文件,该文件为展示用户和搜索页面,内容为:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="/search" method="get">
    <input type="text" name="select">
    <input type="submit" value="搜索">
</form>
    <table border="1">
        <tr>
            <td>用户名</td>
            <td>密码</td>
            <td>性别</td>
            <td>年龄</td>
        </tr>
        {% for user in users %}
        <tr>
            <td><a href="/getUserById?id={{user.id}}">{{user.username}}</a></td>
            <td>{{user.password}}</td>
            {% ifequal user.sex '0' %}
            <td>男</td>
            {% else %}
            <td>女</td>
            {% endifequal %}
            <td>{{user.age}}</td>
        </tr>
        {% endfor%}
    </table>

</body>
</html>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34

2.7 添加路由

修改 PythonUser/PythonUser 目录下的 urls.py 文件,添加路由:

from django.contrib import admin
from django.urls import path
from PythonUser import userdb
from UserModel import views

urlpatterns = [
    path('addUser/', userdb.addUser),
    path('insert/', views.insertUser_form),
    path('listUser/', views.listUser),
    path('search/', views.search),
    path('getUserById/', views.getUserById),
]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

2.8 结果显示

添加页面显示为:
在这里插入图片描述
添加成功结果为:
在这里插入图片描述
显示数据页面为:
在这里插入图片描述
该页面可以进行查询,点击用户名链接可以只查询该用户信息

2.9 总结

只是初步实现用户信息的部分功能,mvc 的分层有点混乱,之后会继续学习更新。

发布了9 篇原创文章 · 获赞 11 · 访问量 8362


所属网站分类: 技术文章 > 博客

作者:我下面给你吃

链接:https://www.pythonheidong.com/blog/article/231934/5750eb05e1bb06bd57ad/

来源:python黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

26 0
收藏该文
已收藏

评论内容:(最多支持255个字符)