Django基础系列1
Posted 互联网杂货店
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django基础系列1相关的知识,希望对你有一定的参考价值。
参考
1、runoob.com/django
2、djangoproject.com
1、安装(win)
1、安装python
2、安装django库:pip3 install django -i https://pypi.douban.com/simple/ --user
3、查看版本验证安装:python3 -m django --version
4、终端输入python3,进入Python终端,输入import django,输入django.get_version(),输出版本号
1、在安装的时候有个坑,Python的Scripts里面没有django-admin.exe,所以命令行不能直接使用
2、通过命令行输入where python得知python目录
3、C:\\Users\\YOU\\AppData\\Local\\Programs\\Python\\Python37\\Scripts
4、通过命令行输入pip show django得知django目录,把里面的django-admin.exe复制到步骤3的路径内
5、C:\\Users\\YOU\\AppData\\Roaming\\Python\\Python37\\Scripts
6、使用命令django-admin startproject guest初始化项目成功,进行一些基础页面配置后(后续介绍)
7、第一次执行run后出现报错之后可执行python3 manage.py migrate重新run
8、项目文件夹终端运行python manage.py runserver 192.168.1.1:8000浏览器成功运行
2、安装(mac)
1、安装python
2、安装django库:pip3 install django -i https://pypi.douban.com/simple/ --user
3、查看版本:python3 -m django --version
4、终端输入python3,进入Python终端,输入import django,输入django.get_version(),输出版本号
1、在mac安装好Python后,接着安装django
2、命令行输入pip3 show django得知/Users/YOU/Library/Python/3.9/lib/python/site-packages
3、接着就是大坑,以为会在site-packages文件夹内,真正的位置在/Users/mao/Library/Python/3.9/bin内
4、找到mac中django-admin文件的位置就好办了
5、命令行输入/Users/YOU/Library/Python/3.9/bin/django-admin startproject guest即可创建模板
3、初次创建
1、在输入django-admin startproject guest
命令后创建一系列文件
guest/
├── manage.py # 一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互。
└── guest # 项目目录
├── __init__.py # 一个空文件,告诉 Python 该目录是一个 Python 包
├── asgi.py # 支持在 ASGI 上进行部署(https://asgi.readthedocs.io/en/latest/)
├── settings.py # 该 Django 项目的设置/配置。
├── urls.py # 该 Django 项目的 URL 声明; 一份由 Django 驱动的网站"目录"。
└── wsgi.py # 一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目。
4、继续升级
1、在输入python manage.py startapp login
命令后创建一系列文件
guest/
├── manage.py
└── login # 应用目录
└── migrations # 目录
├── __init__.py
└── templates # 模板目录
├── index.html
├── __init__.py # 是一个空文件,表示当前目录booktest可以当作一个python包使用。
├── admin.py # 定义管理模块管理对象文件
├── apps.py # 声明应用的文件、文件跟网站的后台管理相关。
├── models.py # 定义应用模型文件、文件跟数据库操作相关。
├── tests.py # 文件用于开发测试用例,在实际开发中会有专门的测试人员,这个事情不需要我们来做。
└── view.py # 视图处理文件、文件跟接收浏览器请求,进行处理,返回页面相关。
└── urls.py # 路由文件
└── guest # 项目目录
├── __init__.py
├── asgi.py
├── settings.py
├── urls.py
└── wsgi.py
apps文件夹是django1.10之后增加的,通常里面包含对应用的配置。
2、配置一下
settings.py
1、在INSTALLED_APPS中加入你的应用名字
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'login'
]
2、修改ALLOWED_HOSTS中添加请求的hosts
ALLOWED_HOSTS = ['0.0.0.0','127.0.0.1','localhost'] or ALLOWED_HOSTS = ['*']
3、python3 manage.py runserver http://127.0.0.1:8080、http://localhost:8080
4、浏览器输入http://127.0.0.1:8080、http://127.0.0.1:8080/admin
3、初始化最基础页面(肝)
注意一下模板里面的url和path
在django>=2.0的版本,urls.py中的django.conf.urls已经被django.urls所取代。
其中最大的改变如下:import urls被import path所取代
老版本:from django.conf.urls import url、urlpatterns里面url(r’^hello$', view.hello)
新版本:from django.urls import path、urlpatterns里面path(‘hello/’, view.hello)
urls.py
from django.contrib import admin
from django.urls import path # 新版本的用法
from sign import views # 新应用
urlpatterns = [
path('',views.index), # 默认路径
path('index/',views.index,name='index'),
path('admin/', admin.site.urls),
]
views.py
from django.shortcuts import render
def index(request):
return render(request,"index.html")
templates index.html
<html>
<head>
<title>Django page</title>
</head>
<body>
<h1>Hello Django!</h1>
</body>
</html>
5、学习一下登录
1、先从项目的urls.py开始
urls.py
from django.contrib import admin
from django.urls import path
from sign import views
urlpatterns = [
path('',views.login), # 登录
path('login_action/',views.login_action,name='login'), # 跳转到登录逻辑函数处理,处理后继续分发页面
path('success/',views.success), # 登录成功
path('admin/', admin.site.urls)
]
2、从urls.py路径处理后,到views.py调用函数
views.py
from django.shortcuts import render
def login(request):
return render(request,"login.html")
def login_action(request):
if request.method == "POST":
# 寻找名为 "username"和"password"的POST参数,而且如果参数没有提交,返回一个空的字符串。
username = request.POST.get("username","")
password = request.POST.get("password","")
if username == '1' and password == '1':
return render(request,"success.html")
else:
return render(request,"login.html","error":"账号或密码错误!")
def success(request):
return render(request,"success.html")
3、从views.py内函数处理后,render转发到html页面
templates > login.html
<html>
<head>
<title>Django page</title>
</head>
<body>
<h1>登录</h1>
<form method="post" action="/login_action/">
<input name="username" type="text" placeholder="username"><br>
<input name="password" type="password" placeholder="password"><br>
<button id="btn" type="submit">登录</button>
error <br>
% csrf_token %
</form>
</body>
</html>
4、以上完善后,输入python3 manage.py runserver localhost:8000
以上是关于Django基础系列1的主要内容,如果未能解决你的问题,请参考以下文章
Python-Web框架之 - 利用SQLALchemy创建与数据库MySQL的连接, 详解用Flask时会遇到的一些大坑 !