Django框架创建web项目之手动创建
-
手动创建一个目录oneweb(项目工程名),可以文件管理器创建,也可以在命令行下创建。
# 名称自定义 mkdir oneweb
-
命令行进入到新建立的目录,执行如下命令,创建一个虚拟环境venv(python解释器)
创建一个独立的环境,以方便软件打包。# python3下,若是其他低版本,可能需要通过pip安装venv包 # python -m venv【虚拟环境名称】 python -m venv venv
-
在当前目录下,使用如下命令激活虚拟环境(django项目的运行必须要活动的虚拟环境)
venv\Script\activate
虚拟环境激活和如下图所示,会有前括号包裹虚拟环境名称
停止环境,输入,deactivate
-
环境激活以后使用pip安装Django,(虚拟环境启动后,就不再使用本地python.exe,且包都是下载到虚拟环境中的)
# 使用 指定源下载 pip install Django -i https://pypi.tuna.tsinghua.edu.cn/simple
-
安装完成后使用Django创建一个web项目:oneweb,1步骤的项目工程名字保持一致
注: 末尾的 . 符号,保证了目录结构的正确,不要缺少,可去掉观察创建差异
点号表示在当前的目录直接建立,不再次建立外层文件夹,django-admin.py startproject oneweb .
-
同级目录下创建一个应用(app)(一个工程可对应多个应用 ),创建完成后,将app写入到django的管理之中,如下写入到oneweb/setting.py配置文件中
python manage.py startapp oneapp
- 同级目录下,创建一个用于存放静态文件(html)的目录,一般来说,通用的html放置于与应用目录同级的目,应用单独使用的html则在应用目录下新建一个文件夹放置,创建完成后,将该目录写入django的setting文件
mkdir templates
以上步骤就手动完成了Django下web项目的简单搭建,目录结构如下:
-
确定项目是否搭建成功,输入一下命令,出下下图,则服务启动成功
# 启动Django开发服务器,以默认的ip,端口 python manage.py runserver
-
创建简单的登录界面,实现简单的登陆操作。
html页面,view函数的创建,url关系的填写-
在templates目录下,新建一个login.html,index.html,内容如下
# 登陆界面 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>学习笔记主页</title> <div class="login_div" style="width: 100%"> <form method="post" action="login"> <!-- 这行代码加上才能够正常的提交form表单--> {% csrf_token %} <div style="width:200px;margin: auto;"> <table> <tr> <td><input type="text" name="username" placeholder="账户名"/></td> </tr> <tr> <td><input type="password" name="password" placeholder="密码"/></td> </tr> </table> </div> <div style="width:50px;margin:auto"> <input type="submit" value="登录"/> </div> </form> </div> </head> <body> </body> </html> --------------------------------------------------------------------------------------------- # 登陆后的界面 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>主页</title> </head> <body> <!-- {{ 变量名 }} ,html下获取后台传送的数据 --> <p>欢迎钻石用户:{{ username }}登录</p> </body> </html> ```
-
在应用oneapp的view.py中编写响应请求的代码
# 登录请求 # request不可缺少 def login(request): if request.method == "POST": username = request.POST.get("username") password = request.POST.get("password") return render(request, "index.html", {"username": username}) elif request.method == "GET": return render(request, "index.html")
-
在oneweb中的urls.py中写入,请求url与是视图函数对应关系(url改由那哪个函数处理)
urlpatterns = [ # path('admin/', admin.site.urls), path("", views.getpage_login), # 默认的响应 http://127.0.0.1:8000 path("login", views.login) # 登录请求http://127.0.0.1:8000/login ]
-
以上就完成了一个简单的页面