Django部署教程:精简---通俗易懂

本文详细介绍了如何创建并运行Django项目,包括启动项目、配置URL、settings.py,以及设置静态资源和模板路径。此外,还涵盖了登录功能的实现、登录后的页面设置,以及数据库连接的方法。在项目上线时,需要调整DEBUG、收集静态文件,并配置urls以支持静态资源访问。
摘要由CSDN通过智能技术生成

一、创建Django项目

  • 进入对应文件夹执行cmd命令
django-admin startproject Myblog    # Myblog为项目名
# 如果失败需考虑是否给django-admin.exe配置了环境变量

执行后生成目录文件如图:
在这里插入图片描述

二、运行项目

方法一:cmd运行

cd Myblog    # 进入到Myblog文件夹
python manage.py runserver 127.0.0.1:8080    # 默认是8000端口

运行成功效果
在这里插入图片描述

方法二:pychram里面直接运行

pycharm运行manage.py配置-------“runserver 127.0.0.1:8080”
*服务器配置外界访问(服务器主机不能访问)-----------“runserver 0.0.0.0:80”
在这里插入图片描述
在这里插入图片描述配置完成即可点击运行 manage.py 文件

三、配置web

1、urls配置

from django.urls import path
from django.shortcuts import HttpResponse, render, redirect   # 神装三件套
# HttpResponse("欢迎登录!")     # 功能单一,只返回文本内容显示
# HttpResponse(json.dumps(dict), content_type='application/json')  # 返回json
# render(requests,'login.html')     # 返回文件显示
# redirect('https://www.baidu.com/')    # 重定向到另外页面,即跳转
# 三件套功能查看:https://blog.csdn.net/miaoqinian/article/details/80668003
def login(requests):
    """
    登录函数
    :param requests:用户请求的所有信息
    :return:
    """
    return HttpResponse('欢迎登录!')
def index(requests):
	pass
urlpatterns = [
    # path('admin/', admin.site.urls),
    path('login/', login),   # 设置登录页面
    path('index/',index)   # 设置登录后页面
]

2、settings.py配置(两种配置不要搞混)
1、配置html模板路径
在这里插入图片描述

'DIRS': [
        os.path.join(BASE_DIR, 'Myblog\login'),
        ],

2、配置js、css静态资源存放路径
在这里插入图片描述

STATIC_URL = '/static/'   # 所有静态资源路径前缀,方便使用
STATICFILES_DIRS = (
    os.path.join(BASE_DIR,"Myblog\CssPath"),     # 配置静态资源路径,后面逗号一定要加
    os.path.join(BASE_DIR,"Myblog\JsPath"),
    os.path.join(BASE_DIR,"Myblog\htmls"),        # 想直接访问xxx.html文件可加存放html路径 
)

3、额外重要配置
在这里插入图片描述

【------重中之重------】

以上只适合在开发中配置,项目生产上线要做以下修改:

1、DEBUG修改为False
在这里插入图片描述
2、新建一个空白文件夹root
settings中添加一行代码:

STATIC_ROOT = r'E:\pythonProject\DjangoProject\MyBlog\root'   # 用来放所有静态文件

在这里插入图片描述
cmd终端运行以下代码:

python manage.py collectstatic   // 作用将所有静态文件放到 STATIC_ROOT 设置的路径

3、urls文件配置
在这里插入图片描述

from django.urls import path
from App import views
from django.conf import settings
from django.conf.urls import url
from django.views.static import serve

urlpatterns = [
    # path('admin/', admin.site.urls),
    path('',views.show_class),    # 我自己的
    # 新增下面这行
    url(r"^static/(?P<path>.*)$", serve, {"document_root": settings.STATIC_ROOT}, name='static'),
]

以上配置好就可以产品上线了

四、功能函数

1、登录函数

def login(requests):
    """
    用户请求功能
    :param requests:用户请求的所有信息
    :return:
    """
    if requests.method == 'GET':
        return render(requests,'login.html')   #
    else:
        user = requests.POST.get('user')
        passwd = requests.POST.get('passwd')
        print(user,passwd)
        if user=='123' and passwd=='123':
            return redirect('/index/')  # 重定向到另一个页面
        else:
            return render(requests,'login.html',{'msg':'密码错误!'})

登录参数获取:

method = requests.method     # 获取用户请求方法
get_content = requests.GET    # 获取用户get请求的所有参数
post_content = requests.POST   # 获取用户post请求的所有参数

2、登录后页面设置函数

def index(requests):
    return render(requests,
                  'login.html',
                  {'msg': '登录成功!',  # 参数为字符串
                   'lis': ['张三', '李四','王五'],  # 参数为列表
                   'dict': {'zhangsan': 23, 'lixi': 18,'wangwu':22},  # 参数为字典
                   'message_list':[{'ID': '1001','name':'小张','sex': '男','email':'123@qq.com'},
                                   {'ID': '1002','name':'小花','sex': '女','email':'234@qq.com'},
                                   {'ID': '1003','name':'小吴','sex': '男','email':'345@qq.com'},]
                   })

对应的html的部分代码

<h2>{{msg}}</h2>
<h2>{{lis.0}}</h2>
<h2>{{dict.zhangsan}}</h2>
<h3>列表循环</h3>
<ul>
    {% for i in lis %}
        <li>{{i}}</li>
    {% endfor %}
</ul>
<h2>---表格---</h2>
    <table border="1">
        {% for row in message_list %}
            <tr>
            <td> {{row.ID}} </td>
            <td> {{row.name}} </td>
            <td> {{row.sax}} </td>
            <td> {{row.email}} </td>
                <td><a> 编辑 </a> | <a href="/index?id={{row.ID}}"> 删除 </a></a></td>
            </tr>
        {% endfor %}
    </table>

效果图
在这里插入图片描述

五、连接数据库(mysql)

建立数据库看我这篇文章:https://blog.csdn.net/weixin_51111267/article/details/122709502

import pymysql
#打开数据库连接
db = pymysql.connect('localhost',user="root",passwd="密码",db="myab")  # myab为数据库名
print(db)
cur = db.cursor()   # 使用cursor()方法获取操作游标
# cur = db.cursor(mysql.cursor.DictCursor)   # 读取数据返回的是字典0
sql = """SELECT runoob_id, runoob_title, 
        runoob_author, submission_date
        FROM abc;"""
cur.execute(sql)     #执行sql语句
db.commit()  # 提交数据,插入数据时使用,读取数据不用
results = cur.fetchall()    #获取查询的所有记录
print(results)
  • 6
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云霄IT

感谢感谢!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值