pycharm如何搭建django项目

首先需要安装python和pycharm,python这里安装的是3.7最新版,pycharm不要使用免费版,因为它不支持Django。

安装Django

这里只介绍较为简单的pip3命令安装方式。

win+r,调出cmd,运行命令:pip3 install django,自动安装Django提供的最新版本。

安装完成后:

运行:django-admin help,查看是否安装成功,能看到下面的内容表示OK。

创建Django项目:

点击:file–>new project,出现下面的对话框。

django项目目录:

创建APP

在每个django项目中可以包含多个APP,相当于一个大型项目中的分系统、子模块、功能部件等等,相互之间比较独立,但也有联系。

所有的APP共享项目资源。

在pycharm下方的terminal终端中输入命令:

python manage.py startapp myAPP

这样就创建了一个叫做myAPP的APP,django自动生成“myAPP夹。

编写路由:

路由都在urls文件里,它将浏览器输入的url映射到相应的业务处理逻辑。

简单的urls编写方法如下图:

#需要先导入对应的app的views文件
from myAPP import views

urlpatterns = [
    #admin后台的路由,先注释
    #path('admin/', admin.site.urls),
    #自定义的路由
    path("index/", views.index),
]

将index这个url指向了views里的index()函数

编写业务处理逻辑

业务处理逻辑都在新建的app文件夹中的views.py文件里。

from django.shortcuts import HttpResponse

# Create your views here.
#request参数必须有,名字是类似self的默认规则
def index(request):
    #不能直接返回字符串,必须是由HttpResponse类封装掐你的,这是django规则,不是python
    return HttpResponse("Hello World")

运行django项目:

在pycharm上部工具栏中找到下面图示的图标。

点击edit configurations

在host中填入:127.0.0.1   port中填入:8000

OK确定之后,点击绿色的三角,web服务就运行起来了。

在浏览器访问程序界面。显示的却是下图的404页面:

修改一下url,添加“/index”,就一切ok了!

返回HTML文件

先在templates文件夹中新建一个HTML文件

再修改一下views文件:

#request参数必须有,名字是类似self的默认规则
def index(request):
    #不能直接返回字符串,必须是由HttpResponse类封装掐你的,这是django规则,不是python
    #return HttpResponse("Hello World")
    """
    当你想返回一个HTML文件时,就要用render方法来渲染
    render是django提供的方法和规则,
    :param request:
    :return:
    """
    return render(request, "index.html",)

现在重新启动一下项目,就可以访问HTML文件了

接收用户发送的数据

上面,我们将一个要素齐全的html文件返还给了用户浏览器。但这还不够,因为web服务器和用户之间没有动态交互。

下面我们设计一个表单,让用户输入用户名和密码,提交给index这个url,服务器将接收到这些数据。

先修改index.html文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>第一个Django项目</title>
</head>
<body>
    <h1>hello World</h1>
    <h2>用户输入</h2>
    <form action="/index/" method="post">
        <input type="text" name="username" />
        <input type="password" name="password" />
        <input type="submit" value="提交">
    </form>
</body>
</html>

然后修改views.py文件,输出接收到的数据

    if request.method == "POST":
        username = request.POST.get("username", None)
        password = request.POST.get("password", None)
        print(username, password)

此时 ,重启web服务时,会出错,因为django有一个跨站请求保护机制,我们在settings文件中将它关闭。

在页面输入数据,之后点击提交,后台接收输出

将数据存储到数据库中,以便保存

使用数据库是毫无疑问的,django通过自带的ORM框架操作数据库,并且自带轻量级的sqlite3数据库。下面我们来看一看:

首先是注册app:

不注册它,你的数据库就不知道该给哪个app创建表。

然后我们在settings中,配置数据库相关的参数,如果使用自带的sqlite,不需要修改。

再编辑models.py文件

from django.db import models

# Create your models here.

#需要基础Model类,固定写法
class UserInfo(models.Model):
    #创建两个字段最大长度为32,类型是char
    user = models.CharField(max_length=32)
    pwd = models.CharField(max_length=32)

这里我们创建了2个字段,分别保存用户的名字和密码。

接下来要在pycharm的teminal中通过命令创建数据库的表了。有2条命令,分别是:

python manage.py makemigrations

再输入命令:python manage.py migrate

修改views.py中的业务逻辑

from django.shortcuts import render
from django.shortcuts import HttpResponse
from myAPP import models

# Create your views here.
#request参数必须有,名字是类似self的默认规则
def index(request):
    if request.method == "POST":
        username = request.POST.get("username", None)
        password = request.POST.get("password", None)
        #print(username, password)
        #把数据添加到数据库中
        models.UserInfo.objects.create(user=username, pwd = password)
    #从数据库中读取所有的数据
    user_list = models.UserInfo.objects.all()
    #不能直接返回字符串,必须是由HttpResponse类封装掐你的,这是django规则,不是python
    #return HttpResponse("Hello World")
    """
    当你想返回一个HTML文件时,就要用render方法来渲染
    render是django提供的方法和规则,
    :param request:
    :return:
    """
    return render(request, "index.html", {"data": user_list})

修改index页面,把数据库数据显示出来

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>第一个Django项目</title>
</head>
<body>
    <h1>hello World</h1>
    <h2>用户输入</h2>
    <form action="/index/" method="post">
        <input type="text" name="username" />
        <input type="password" name="password" />
        <input type="submit" value="提交">
    </form>

    <hr>
    <h1>数据显示</h1>
    <table border="1">
        <thead>
            <th>用户名</th>
            <th>密码</th>
        </thead>
        <tbody>
{#        循环遍历数据,data为views中传递过来的第三个参数中的key#}
            {% for line in data %}
                <tr>
                    <td>{{ line.user }}</td>
                    <td>{{ line.pwd }}</td>
                </tr>
            {% endfor %}
        </tbody>
    </table>

</body>
</html>

页面效果:

引用静态文件:

我们已经可以将html文件返还给用户了,但是还不够,前端三大块,html、css、js还有各种插件,它们齐全才是一个完整

的页面。在django中,一般将静态文件放在static目录中。接下来,在项目中新建个static目录。

你的CSS,JS和各种插件都可以放置在这个目录里。

为了让django找到这个目录,依然需要对settings进行配置:

STATICFILES_DIRS=(
    os.path.join(BASE_DIR, 'static'),
)

页面引用

访问状态为200则引用成功,也可以到浏览器中看

发布了112 篇原创文章 · 获赞 223 · 访问量 11万+

猜你喜欢

转载自blog.csdn.net/qq_40205116/article/details/99192173