使用anaconda+Pycharm搭建Django项目

简介:Django 是一个由 Python 编写的一个开放源代码的 Web 应用框架。使用 Django,只要很少的代码,就可以轻松地完成一个正式网站所需要的大部分内容。

 

1、  环境准备

1、  下载、安装集成开发环境PyCharm

 

PyCharm官网https://www.jetbrains.com/pycharm/download/#section=windows

 

cb01aace794542fa99feab6761022051.png下载完毕,双击.exe文件安装即可。

 

 

2、  下载、安装Python包管理器anaconda

 

anaconda官网:https://www.anaconda.com/

 

10bc7af1e93b446e9fbd0f1f6cfd425f.png下载完毕,双击.exe文件安装即可。

 

 

3、  安装 Web 应用框架django

 

1、  打开安装好的PyCharm,file->New Project,新建名为webServer项目

 

8330c43e6e754e5eb892c9b6045ed916.png2、  点击Terminal,运行创建项目命令:python -m pip install Django

 

 

454c2218122d46018b68aa63d56fad58.png4、  安装打包成exe文件命令pyinstaller

 

1、  切换到项目根路径【cd D:\python\xuexi\learnDjango\webServer】,Terminal中运行启动项目命令:pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple pyinstaller

b98a8c5408694ca8bc21adc1a7cbe19a.png

 

 

2、  创建项目(web开发服务器)

1、Terminal中运行创建项目命令:django-admin startproject webServer

 

003c44526abd4c708d492ee91bd51adb.png

 

 

2、  Terminal中运行启动项目命令:python manage.py runserver

 

925fa8f22748404fadfc57811b89c5d6.png

 

 

3、  浏览器访问地址:http://127.0.0.1:8000/

9a5332d3f5b74e398edeff3bcc64a8da.png 

 

 

成功创建项目!

 

3、  创建应用程序(app)

 

1.  Terminal中运行创建应用程序命令:python manage.py startapp app

 

a1ff954fc3df4545af18d8ffe44c8eb3.png

 

d978122cdc204ab3805f01ba5cd552aa.png 

 

2.  注册该应用程序

 

setting.py中INSTALLED_APPS模块添加应用程序名

 

47c11b5299b94e848150e37b09bc3e9a.png 

 

3.  编辑应用程序(app)的视图模板(view.py),向页面输出:hello world

 

 

# Create your views here.
from django.http import HttpResponse


def index(request):
    return HttpResponse("hello world!")

 

10634e00c3a54a5581f78e909016117a.png

 

 

4.  修改路由(urls.py)

 

为了方便管理,根据路由分发规则来操作。

 

4.1 在应用程序添加路由文件(app/urls.py),并指向视图模板新建且需要执行的函数。

 

 

from django.urls import path
from . import views

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

 

如图所示:

ec5a7354d43e42f18b66c6252fd4ffbf.png

 

 

 

4.2 在项目的路由文件(webserver/urls.py)添加每个应用程序的路径。

 

 

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

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

 

如图所示:

900742ed8e37490aaae6c101d74aab06.png

 

 

4.3 Terminal中运行启动命令启动(app)应用程序:python manage.py runserver

 

演示:

79b8c6f62c2d4cbeadffb934bb0e1e12.png

 

 

4、  模板操作

1、  webServer项目新建模板templates文件夹

2、  修改项目模板templates文件的默认路径

 

setting.py中TEMPLATES模块中的DIRA添加模板基础路径

 

 

'DIRS': [os.path.join(BASE_DIR, 'templates')],

 

如图所示

aa9c7f33d1d840afa136513223c9ed2b.png 

 

3、  新建页面index.html,编辑页面显示内容

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <div align="center"><h1>Hello world!</h1></div>
</body>
</html>

 

如图所示:

76007a256b284a5384bcc64668ad8d91.png 

 

4、  修改对应view.py文件内容,渲染index.html页面

 

# Create your views here.
from django.http import HttpResponse
from django.shortcuts import render
from django.views.decorators.csrf import csrf_exempt
from .models import data
import time


def index(request):
    return render(request, 'index.html')

 

如图所示:

12e45a438d0c43c085b218652da5f5f9.png

 

 

5、  Terminal中运行启动命令启动:python manage.py runserver

 

b57de6489ac640efabbd76fb5b624035.png

 

 

5、  前后端交互【form表单】

1、  前端提交

index.html的body中插入form表单提交代码,后端根据input中的name接收数据

 

<form action="/app/" method="post"></br>
<!--        csrf\_token-->
        UM: <input type="text" name="um">
        分机号:<input type="text" name="num">
        <input type="submit" value="提交">
</form>

 

演示:

ea9555a7d63d43a3b3dfb5cae30cd4f3.png

 

2、  后端处理(接收、过滤、返回)

 

app/view.py添加接收数据函数:

 

from django.views.decorators.csrf import csrf_exempt
@csrf_exempt
def getData(request):
    num_list = []
    if request.method == 'POST':
        um = request.POST.get('um')
        num = request.POST.get('num')
        print(um, num)
        temp = {'um': um, 'num': num}
        num_list.append(temp)
        return render(request, 'index.html', {'data': num_list})
    else:
        return render(request, 'index.html')

 

 

app/urls.py修改执行函数:

 

urlpatterns = [
    path('', views.getData, name='getData'),
    # path('', views.index, name='index'),
]

 

 

刷新输入数据演示:

82ed3abc6f9740a891104a2d4da757bc.png 

 

 

3、  前端显示

index.html的body中添加显示代码

 

<h3>展示</h3>
            <table border="1" width="50%" align="center">
            <tr>
                <th>UM</th>
                <th>分机号</th>
            </tr>
            {% for item in data %}
                <tr>
                    <td width="50%" align="center">{{ item.um }}</p></td>
                    <td width="50%" align="center">{{ item.num }}</p></td>
                </tr>
            {% endfor %}

 

 

演示:

92e2f88e22cc44f0bcc319cf605d64f4.png

 

 

6、  前后端与数据库sqlite交互

python 自带SQLite数据库,Django支持各种主流的数据库,且创建项目的时候已经同步添加了sqlite数据库文件,非常方便,所以作为初学者,这里直接选择使用SQLite。

1.  创建表

1.  创建data表

 

# Create your models here.

# app应用下面的models.py中创建表.
# models.py中书写一个类就是创建一个表,这个类必须继承models.Modeld.

from django.db import models


class data(models.Model):
    # 1.创建字段(id主键、un字段、number字段、handler字段、c_time字段)
    id = models.AutoField(primary_key=True, verbose_name='主键')
    um = models.CharField(max_length=32, verbose_name='um')
    number = models.CharField(max_length=32, verbose_name='分机号')
    handler = models.CharField(max_length=32, verbose_name='处理人')
    c_time = models.CharField(max_length=32, verbose_name='创建时间')

 

2.  数据库迁移

记录对model.py的改动,保存到migrations文件下的init.py【Teminal中执行命令:python manage.py makemigrations】

cf8d187a52e842c59d32d7b742403279.png 

 

3.  同步才数据库

将操作真正同步到数据库中:【Teminal中执行命令:python manage.py migrate】

2984e50bbd0d45c7918091c58f71dcee.png

 

2.  添加数据

 

def getData(request):
    num_list = []
    if request.method == 'POST':
        ...
        data_1 = data()
        data_1.um = um
        data_1.number = number
        data_1.handler = 'zhangsan'
        data_1.c_time = time.strftime(" %Y-%m-%d")
        data_1.save()
        return render(request, 'index.html', {'data': data.objects.all()})
    else:
        return render(request, 'index.html', {'data': data.objects.all()
})

 

3.  查看数据

 

<h3>展示</h3>
            <table border="1" width="50%" align="center">
            <tr>
                <th>UM</th>
                <th>分机号</th>
                <th>处理人</th>
                <th>创建时间</th>
            </tr>
            {% for item in data %}
                <tr>
                    <td width="" align="center">{{ item.um }}</p></td>
                    <td width="" align="center">{{ item.number }}</p></td>
                    <td width="" align="center">{{ item.handler }}</p></td>
                    <td width="" align="center">{{ item.c_time }}</p></td>
                </tr>
            {% endfor %}

 

94d97bce95ac49149ddbcabf35f7e06f.png

 

7、项目打包

D:\python\xuexi\learnDjango\webServer> pyinstaller manage.spec

D:\python\xuexi\learnDjango\webServer\dist\manage>manage.exe runserver  --noreload

f15c8d7fe0014b7491b2bf0bd7add06b.png

 

 

 

 

 

  • 19
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值