Django + Python 搭建项目笔记 - Windows

Django + Python 搭建项目笔记 - Windows

最近在毕业设计的项目中需要用到Django搭建Python Web的项目。整理一下搭建和使用时遇到的问题,方便下次使用时查阅。

目录

Django的安装

Django是一款支持快速开发,设计整洁务实的高级Python Web框架。它由经验丰富的开发人员构建,可以处理Web开发中的大部分麻烦。因此用户可以专注于编写应用程序,不需要重新造轮子,并且Django是免费开源的。 —— [ Django官网 ]

在Django安装之前,请先确认Python已经安装在本地,Python安装可以参考廖雪峰博客:安装Python
安装Python时,最好同时选择安装pip以方便后续Django的安装。

下载Django可以通过pip命令

Django官网安装方式一

进入Python安装目录下的 /Scripts/pip.exe(直接拖动到cmd窗口中也可以)后面加上install Django==2.0.4 即可,成功后会自动下载Django

Django会被安装到 \Python\Lib\site-packages 目录下。

cmd命令行E:\python\Scripts\pip exe install Django==2.0.4

配置系统环境变量

配置系统环境变量path,在路径中添加
E:\python\ScriptsE:\python\Lib\site-packages\django

检查是否成功

想要检查安装成功与否,可以进入python交互模式下,输入
import Django
Django.get_version()
如果获得Django版本号说明安装正确。

通过Django创建本地项目

创建项目文件

进入E:\python\Scripts可以看到django-admin.py文件,直接执行可以看到django可使用的命令列表。
直接执行django-admin.py文件

执行django-admin.py startproject HelloWorld(HelloWorld为项目名称),即可获得如下结构的项目。

HelloWorld
|– HelloWorld
| |– __init__.py
| |– settings.py
| |– urls.py
| |– wsgi.py
|– manage.py

  • HelloWorld: 项目的容器。
  • manage.py: 一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互。
  • HelloWorld/__init__.py: 一个空文件,告诉 Python 该目录是一个 Python 包。
  • HelloWorld/settings.py: 该 Django 项目的设置/配置。
  • HelloWorld/urls.py: 该 Django 项目的 URL 声明; 一份由 Django 驱动的网站”目录”。
  • HelloWorld/wsgi.py: 一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目。
    —— 引用自 runoob:Django创建第一个项目

启动服务器

运行命令Python manage.py runserver

如果出现以下提示

You have unapplied migrations; your app may not work properly until they are applied. Run ‘python manage.py migrate’ to apply them.

先使用命令 python manage.py migrate

输出如下信息即代表成功

Operations to perform: Apply all migrations: contenttypes, sessions, admin, auth
Running migrations: Applying contenttypes.0001_initial… OK
Applying auth.0001_initial… OK
Applying admin.0001_initial… OK
Applying sessions.0001_initial… OK

重新运行命令Python manage.py runserver即可成功,本地访问http://127.0.0.1:8000/(默认)即可。 —— 引用自Andrew Liu的简书

运行实例
成功效果图

创建新的视图(View)和URL配置

创建一个新的视图view.py

首先在HelloWorld项目下的HelloWorld(主容器)目录下,新建view.py文件,代码内容如下:

from django.http import HttpResponse

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

其效果可以在页面上输出 Hello world ! 这句话。

绑定URL和该试图

想要绑定URL,需要修改HelloWorld目录下的urls.py文件,将本来的内容替换为:

from django.conf.urls import url
from . import view

urlpatterns = [
    url(r'^$', view.hello),
]

导入url包使其可以调用url函数,导入view页面使其可以使用。
其目的在于在 urlpatterns 的配置信息中,加入:当访问 127.0.0.1:8000 (后面没有任何内容)时,会执行 view.py 文件中的 hello 函数。

因此上面的内容也可以替换为:

from django.conf.urls import url
from . import view

urlpatterns = [
    url(r'^hello$', view.hello),
]

则访问 127.0.0.1:8000\hello时,执行hello函数。
—— 以上代码引用自 runoob:Django创建第一个项目

前后端数据传输

POST方法

在项目中我主要使用的是POST方法,配合ajax访问后台。由于django在安全方面的配置,使用POST方法必须在请求中包含csrf_token防止跨站域请求伪造。如果丢失,会造成访问报500错误。
现在整理两种方法:
1. 借助form表单进行访问
form表单比较简单,只需要在标签中加入{% csrf_token %} 即可,这种方式在表单提交后会自动在请求中加入。
样例:

<!-- 前端代码 -->
<form action="/search-post" method="post">
    {% csrf_token %}
    <input type="text" name="q">
    <input type="submit" value="Submit">
    </form>
# 后端代码
def search_post(request):
    ctx = {'rlt': 10000}
    print request.POST
    if request.POST:
        ctx['rlt'] = request.POST['q']
    return render(request, "post.html", ctx)
  1. 借助ajax进行访问
    由于ajax是在JS中进行调用的,因此在调用前,必须加上:
$.ajaxSetup({
    data: {csrfmiddlewaretoken: '{{ csrf_token }}' },
});

然后正常写入ajax请求即可。

$.ajax({
        type: "post",
        url: "/result",
        dataType: "json",
        data: {
            "param": "I'am param!"
        },
        success: function(data) {
            alert('成功');
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            alert('失败');
        }
    });
def result(request):
    cotext = {}
    if request.POST:
        param = request.POST.get('param')
        context["data"] = param
        context["status"] = status

    return HttpResponse(json.dumps(context), content_type='application/json')

GET方法


参考目录

  1. https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014316090478912dab2a3a9e8f4ed49d28854b292f85bb000
  2. https://www.djangoproject.com/download/
  3. http://www.runoob.com/django/django-first-app.html
  4. https://www.jianshu.com/p/1b5b7aa416f8
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
项目介绍】 本项目是基于Django框架的云笔记系统,实现多用户登录,注册以及笔记的添加修改删除等操作,HTML页面没有进行响应美化,主要是后端的操作; - 用户注册成功后,会直接进入登录界面,输入账号密码登录即可 - 登录成功后,会记住登录状态,下次打开页面直接进入笔记页面 - 用户退出后,会清理session,则下次再进入页面时,需要输入账号密码 ## 安装Django 使用命令: ```shell sudo pip3 install Django==2.2.12 ``` 本项目使用的是MySQL数据库,因此下面进行MySQL数据库配置 ### MySQL数据库配置 #### 安装MySQL ``` 1.安装:sudo apt install mysql-server 2.查看默认安装的MySQL的用户名和密码:sudo cat /etc/mysql/debian.cnf 3.登录MySQL:mysql -u debian-sys-maint -p 4.输入上文查看的密码 5.进入MySQL:use mysql; 6.刷新权限:flush privileges; 7.修改用户名和密码:ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY '123456'; #密码设置为123456 8.刷新权限:flush privileges; 9.退出:exit; 10.重启MySQL:service mysql restart 11.mysql -u root -p # 回车后输入自己修改后的密码即可 ``` #### 验证配置 安装前确认ubuntu是否已安装 python3-dev 和 default-libmysqlclient-dev 验证python3-dev,若无输出则没有安装 ```shell sudo apt list --installed|grep -E 'python3-dev' ``` 验证default-libmysqlclient-dev,若无输出则没有安装 ```shell sudo apt list --installed|grep -E 'libmysqlclient-dev' ``` 安装python3-dev ```shell sudo apt-get install python3-dev ``` 安装default-libmysqlclient-dev ```shell sudo apt-get install default-libmysqlclient-dev ``` 确保上述两个库已经安装,执行 sudo pip3 install mysqlclient即可 #### 创建数据库 该项目使用的数据库名称为:netnote 进入数据库后,创建该数据库 ```sql create database netnote default charset utf8; ``` #### fork项目后的操作 fork项目后,除了上文提到的环境配置,需要在项目根目录下运行以下指令: ```shell python3 manage.py makemigrations python3 manage.py migrate ``` 启动项目: ```shell python3 manage.py runserver ``` 此时打开浏览器输入地址:127.0.0.1即可 则会进入云笔记首页 【备注】 1.项目代码均经过功能验证,确保稳定可靠运行。欢迎下载食用体验! 2.主要针对各个计算机相关专业,包括计算机科学、信息安全、数据科学与大数据技术、人工智能、通信、物联网等领域的在校学生、专业教师、企业员工。 3.项目具有丰富的拓展空间,不仅可作为入门进阶,也可作为毕设、课程设计、大作业、初期项目立项演示等用途。 4.鼓励大家基于此进行二次开发。在使用过程中,如有问题或建议,请及时沟通。 5.期待你能在项目中找到乐趣和灵感,也欢迎你的分享和反馈!
Python是一种流行的编程语言,有非常丰富的库和框架可供使用。而Django是一个基于Python的开发框架,用于快速搭建Web应用程序。Vue是一种流行的JavaScript框架,用于构建用户界面。 当我们要搭建一个前后端分离的项目时,可以使用PythonDjango框架和Vue框架来实现。下面是大致的步骤: 1. 对于后端,我们可以使用Django框架来搭建RESTful API。首先,创建一个新的Django项目并设置好相关配置。然后,定义数据模型和数据库表,可以使用Django的ORM(对象关系映射)来简化数据库操作。接下来,创建视图函数来处理不同的API请求,可以通过序列化器将模型数据转换为JSON格式进行传输。最后,设置URL路由映射和权限控制,确保API的安全性和可访问性。 2. 对于前端,我们可以使用Vue框架来构建用户界面。首先,创建一个新的Vue项目并安装所需的依赖项。然后,创建组件来管理不同的页面和功能模块。在组件中,可以使用Vue的数据绑定和计算属性等功能来简化数据处理和状态管理。同时,可以使用Vue Router来管理页面之间的导航和路由,以及使用axios库来发送API请求和接收响应。 3. 在前后端之间进行通信时,前端通过axios发送HTTP请求到后端的API接口,后端处理请求并返回相应的数据。前端可以根据接口的返回结果来更新界面和展示数据。 总的来说,使用PythonDjango框架和Vue框架可以很好地实现前后端分离的项目Django提供了强大的后端支持,可以快速搭建API接口,而Vue框架则提供了便捷的前端开发环境,可以轻松构建用户界面。通过这种搭配,我们可以高效地开发出功能完善、交互流畅的Web应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值