IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 社区版PyCharm安装并创建Django项目 -> 正文阅读

[Python知识库]社区版PyCharm安装并创建Django项目

软件版本:PyCharm Community Edition 2021.3.3

python版本:Python 3.9.7

一、下载Django

1、点击 File ---- Seetings

?2、点击python Interpreter ----点击‘+’

3、查找Django,点击左下角 install package下载

二、创建Django项目

1、Settings--tools--Terminal 配置Shell path路径

2、打开cmd命令行,cd到你想要创建django项目的路径,然后输入命令: django-admin startproject? ?djangoproject ,后面djangoproject?代表你的项目名。

 django-admin startproject? ?djangoproject .

注意:上面的命令最后的那个点,它表示在当前路径下创建项目。

3、用pycharm打开Djangoproject文件

?

?4、点击View--Tool Windows--Terminal--打开Local

?5、在Terminal运行代码:python manage.py runserver

6、点击打开?http://127.0.0.1:8000/,出现这个界面,表示Django项目已经搭建成功。
?

说明1:刚刚启动的是Django自带的用于开发和测试的服务器,它是一个用纯Python编写的轻量级Web服务器,但它并不是真正意义上的生产级别的服务器,千万不要将这个服务器用于和生产环境相关的任何地方。

说明2:用于开发的服务器在需要的情况下会对每一次的访问请求重新载入一遍Python代码。所以你不需要为了让修改的代码生效而频繁的重新启动服务器。然而,一些动作,比如添加新文件,将不会触发自动重新加载,这时你得自己手动重启服务器。

说明3:可以通过python manage.py help命令查看可用命令列表;在启动服务器时,也可以通过python manage.py runserver 1.2.3.4:5678来指定将服务器运行于哪个IP地址和端口。

说明4:可以通过Ctrl+C来终止服务器的运行。

三、写一个简单的测试

1、创建名为books(图书管理系统)的应用,一个Django项目可以包含一个或多个应用。

输入命令:python manage.py startapp books

执行上面的命令会在当前路径下创建books目录,其目录结构如下所示:

  • __init__.py:一个空文件,告诉Python解释器这个目录应该被视为一个Python的包。
  • admin.py:可以用来注册模型,用于在Django的管理界面管理模型。
  • apps.py:当前应用的配置文件。
  • migrations:存放与模型有关的数据库迁移信息。
    • __init__.py:一个空文件,告诉Python解释器这个目录应该被视为一个Python的包。
  • models.py:存放应用的数据模型,即实体类及其之间的关系(MVC/MTV中的M)。
  • tests.py:包含测试应用各项功能的测试类和测试函数。
  • views.py:处理请求并返回响应的函数(MVC中的C,MTV中的V)。

2、修改应用目录下的视图文件views.py。

from io import StringIO
from django.http import HttpResponse

depts_list = [
    {'num':2021011001,'name':'西游记','booktime':'2022-10-15'},
    {'num':2021050214,'name':'三国演义','booktime':'2022-10-15'},
    {'num':2022101456,'name':'爱丽丝梦游仙境','booktime':'2022-10-15'},
]
def books(request):
    output = StringIO()
    output.write('<html>\n')
    output.write('<head>\n')
    output.write('\t<meta charset="utf-8">\n')
    output.write('\t<title>首页</title>')
    output.write('</head>\n')
    output.write('<body>\n')
    output.write('\t<h1>图书信息</h1>\n')
    output.write('\t<hr>\n')
    output.write('\t<table>\n')
    output.write('\t\t<tr>\n')
    output.write('\t\t\t<th width=120>图书编号</th>\n')
    output.write('\t\t\t<th width=180>图书名称</th>\n')
    output.write('\t\t\t<th width=180>借阅时间</th>\n')
    output.write('\t\t</tr>\n')
    for dept in depts_list:
        output.write('\t\t<tr>\n')
        output.write(f'\t\t\t<td align=center>{dept["num"]}</td>\n')
        output.write(f'\t\t\t<td align=center>{dept["name"]}</td>\n')
        output.write(f'\t\t\t<td align=center>{dept["booktime"]}</td>\n')
        output.write('\t\t</tr>\n')
    output.write('\t</table>\n')
    output.write('</body>\n')
    output.write('</html>\n')
    return HttpResponse(output.getvalue())

?3、修改项目目录下的urls.py文件

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

from books import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('books/',views.books),
    path('',views.books,name='books')
]

4、输入命令:python manage.py runservser

点击打开?http://127.0.0.1:8000/

?

四、使用视图模板

上面通过拼接HTML代码的方式生成动态视图的做法在实际开发中是无能接受的。为了解决这个问题,可以提前准备一个模板页,所谓模板页就是一个带占位符的HTML页面,将程序中获得的数据替换掉页面中的占位符时,一个动态页面就产生了。

用Django框架中template模块的Template类创建模板对象,通过模板对象的render方法实现对模板的渲染,在Django框架中还有一个名为render的便捷函数可以来完成渲染模板的操作。

渲染就是用数据替换掉模板页中的占位符,这里的渲染称为后端渲染,即在服务器端完成页面的渲染再输出到浏览器中,这种做法的主要坏处是当并发访问量较大时,服务器会承受较大的负担。

1、先回到manage.py文件所在的目录创建名为templates文件夹,在文件夹里创建模板页index.html。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>首页</title>
</head>
<body>
    <h1>图书信息</h1>
    <table>
        <tr>
            <th>图书编号</th>
            <th>图书名称</th>
            <th>借阅时间</th>
        </tr>
        {% for dept in depts_list %}
        <tr>
            <td>{{dept.num}}</td>
            <td>{{dept.name}}</td>
            <td>{{dept.booktime}}</td>
        </tr>
        {% endfor %}
    </table>
</body>
</html>

2、回到应用目录,修改views.py文件。

from django.shortcuts import render

depts_list = [
    {'num':2021011001,'name':'西游记','booktime':'2022-10-15'},
    {'num':2021050214,'name':'三国演义','booktime':'2022-10-15'},
    {'num':2022101456,'name':'爱丽丝梦游仙境','booktime':'2022-10-15'},
]
def index(request):
    return render(request,'index.html', {'depts_list':depts_list})

3、切换到项目目录修改settings.py文件,更改TEMPLATES = [ ]里面'DIRS’=[]中内容

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

4、重新运行项目或直接刷新页面查看结果。

?

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-09-30 00:49:11  更:2022-09-30 00:50:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 6:55:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码