1.环境搭建
虚拟环境
python3.8+Django3.1.1 【安装教程】
IDE
Pycharm收费版2020.1.1【请支持正版】
平台
win10
注
(1)安装Django时需要将其加入到环境变量
(2)虚拟环境需要激活才能使用【active.bat】
2.入门1
(1)创建Django项目
打开Pycharm,选择Django,虚拟环境和工程项目路径
(2)项目初始化文件概览
__init__.py:空文件 setttings.py:空配置文件 urls.py:路由文件 wsgi.py:网关文件 templates:HTML文件安置目录 manage.py:项目管理脚本
|
(3)创建APP
terminal终端
python manage.py startapp login
|
工程目录下生成一个文件夹login
(4)编写路由【urls.py】
#1.导入文件 from login import views #2.在列表中添加路由 urlpatterns = [ path('admin/',admin.site.urls), path('index/',views.index) ]
|
(5)编写视图文件【views.py】
#1.导入模块 from django.shortcuts import HttpResponse #2.编写index函数 def index(request): return HttpResponse('Hello World!') #被此类封装后返回才能被HTTP协议识别,不能直接返回字符串
|
(6)运行项目
python manage.py runserver 127.0.0.1:8000
|
pycharm中点击Edit Configurations 在host中填入127.0.0.1,port中填入8000,name随意。
注:在运行前要先将虚拟环境激活
cd F:\learn\2020\down\7月-8月\python\Project\DjangoVenv3.8\Project1\Scripts activate.bat cd cd F:\learn\2020\down\7月-8月\python\Project\untitled
|
(7)查看结果
127.0.0.1:8000 127.0.0.1:8000/index
|
(8)优化1 将HTML文件返回给用户
在templats中新建index.html
index.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>test</title> </head> <body> <h1 style="background-color: antiquewhite;color: black">Hello World!</h1> </body> </html>
|
view.py
from django.shortcuts import render def index(request): return render(request,'index.html');
|
settings.py
TEMPLATES = [ { ... 'DIRS':[os.path.join(BASE_DIR,'templates')], ... } ]
|
(9)优化2 使用静态文件
1.新建static.js包
2.在js中拷贝jquery-3.2.1.min.js
3.配置settings
#3.1 帮助信息 # Statics files(CSS,JavaScrpt,Images) # https://docs.djangoproject.com/en/2.1/howto/static-files/ #3.2 浏览器访问静态文件的前缀部分 STATIC_URL = '/static/' #3.3 目录路径 STATICFILES_DIRS = [ os.path.join(BASE_DIR,'static'), ]
|
4.在index.html中引入js
<script src = "/static/js/jquert-3.2.1.min.js"></script>
|
(10)接收用户发送的数据
index.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>首页</title> </head> <body> <h1>用户输入:</h1> <form action="/index/" method="post"> 用户名:<input type="text" name="username" /><br /> 密码:<input type="password" name="password" /><br /> <input type="submit" value="提交" /> </form> </body> </html>
|
(11)返回动态页面
views.py
from django.shortcuts import render from django.shortcuts import HttpResponse
# Create your views here.
user_list = []
def index(request): if request.method == 'POST': username = request.POST.get('username') password = request.POST.get('password') print(username, password) temp = {'user': username, 'pwd': password} user_list.append(temp) return render(request, 'index.html', {'data': user_list})
|
index.HTML
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>首页</title> </head> <body> <h1>用户输入:</h1> <form action="/index/" method="post"> {% csrf_token %} 用户名:<input type="text" name="username" /><br /> 密码:<input type="password" name="password" /><br /> <input type="submit" value="提交" /> </form>
<h1>用户展示:</h1> <table border="1"> <thead> <tr>用户名</tr> <tr>密码</tr> </thead> <tbody> {% for item in data %} <tr> <td>{{ item.user }}</td> <td>{{ item.pwd }}</td> </tr> {% endfor %} </tbody> </table> </body> </html>
|
(12)使用数据库
sqlite3
1.注册app
settings
INSTALLED_APPS=[ ... 'login' ]
DATABASES = [ ... #保持不变 ]
|
2.models.py
from django.db import models
class UserInfo(models.Model): user = models.CharField(max_length=32) pwd = models.CharField(max_length=32)
|
3.terminal
python manage.py makemigrations
python manage.py migrate
|
4.views.py
from django.shortcuts import render from login import models
def index(request):
if request.method == 'POST': username = request.POST.get('username') password = request.POST.get('password') models.UserInfo.objects.create(user=username, pwd=password)
user_list = models.UserInfo.objects.all() return render(request, 'index.html', {'data': user_list})
|
(13)总结
1.views.py
2.settings.py
3.models.py
4.html