赞
踩
pip install django -i https://pypi.tuna.tsinghua.edu.cn/simple
django安装后的目录结构:
c:\python310
- python.exe
- Scripts
- pip.exe
- django-admin.exe #工具,创建django项目
- Lib
- 内置模块
- site-packages
- openpyxl
- python-docx
- flask
- django #框架的源码
django中项目会有一些默认的文件和默认文件夹
打开终端
进入某个目录(指定需要创建的目录)、
E:\> cd .\python_web\demo_django\
执行django的创建命令
django-admin.exe startproject 项目名
创建成功后的目录结构如下:
mysite
- mysite
- __init__.py
- asgi.py
- settings.py
- urls.py
- wsgi.py
- manage.py
注意, python解释器目录和项目目录
使用pycharm企业版
直接在菜单中创建 Django菜单进行创建
通过命令行创建的是标准的,但是pycharm创建的,会增加一些新的目录 templates目录, 在settings.py里添加了写数据
TEMPLATES = [
'DIRS':[os.path.join(BASE_DIR, 'templates')]
]
mysite
- mysite
- __init__.py
- asgi.py # 接受网络请求(异步)
- settings.py # 项目配置文件, 配置数据库,密码,注册app等.
- urls.py # URL路径和函数的对应关系
- wsgi.py # 接受网络请求(同步)
- manage.py # 项目管理,启动项目,创建app, 数据管理
-项目
- app 用户管理 [表结构,函数,HTML模板, CSS]
- app 订单管理 [表结构,函数,HTML模板, CSS]
- app 后台管理 [表结构,函数,HTML模板, CSS]
- app 网站
- app API
创建一个app
python manage.py startapp app01
python manage.py startapp app02
app的文件结构
--app01
- __init__.py
- admin.py # django后台提供admin后台管理
- apps.py # app启动类
- migratioins # 数据库变更记录
- __init__.py
- models.py # 【重要】, 对数据库进行操作
- tests.py # 单元测试
- views.py # 【重要】, url定义执行的函数
在settings.py中配置需要注册的app
# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app01.apps.App01Config'
]
urls.py
from django.contrib import admin
from django.urls import path
from app01 import views
urlpatterns = [
#path('admin/', admin.site.urls),
path('index/', views.index)
]
views.py
from django.shortcuts import render
# Create your views here.
def index(request): # 响应试图函数必须有个request参数
return HttpResponse("欢迎使用")
通过命令行启动
python manage.py runserver
pycharm启动
点击 启动按钮 进行启动
views.py
def user_list(request):
# 默认会去app目录下,寻找templates目录,再在这个目录中查询user_list.html这个文件
# 如果跟目录下有user_list.html, 也只会在app里查找,如果需要使用根目录的,则需要更改settings里的配置
return render(request, "user_list.html")
当前app目录下,创建一个templates目录
静态文件必须在当前的app目录下面的static目录
静态文件包含js, css, image等资源
{% load static %} <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <link rel="stylesheet" href="{% static 'plugins/bootstrap/css/bootstrap.css' %}"> </head> <body> <h1>用户登陆</h1> <input type="text" class="btn btn-primary" value="新建"/> <img src="/static/img/11.jpg" alt=""/> <script src="{% static 'js/jquery-3.7.1.min.js'}"></script> <script src="{% static 'plugins/bootstrap/js/bootstrap.js'} %"></script> </body> </html>
本质上, 在html中写一些占位符, 由数据进行替代和处理
name="自定义标题1"
return render(request, "tpl.html", {"n1":name})
<div>{{n1}}</div>
roles = ["张三","李四","王五"]
return render(request, "tpl.html", {"roles":roles})
数组遍历
<table> <thead> <tr> <th>id</th> <th>姓名</th> </tr> </thead> <tbody> {% for item in roles %} <tr> <td>1</td> <td>{{item}}</td> </tr> {% endfor %} </tbody> </table>
直接取数组元素
<div>
<span>{{roles.0}}</span>
<span>{{roles.1}}</span>
<span>{{roles.2}}</span>
</div>
userinfo = {"name":"bell","exp":1000, "lv":25 }
return render(request, "tpl.html", {"user":userinfo})
<div>
<div>{{user.name}}</div>
<div>{{user.lv}}</div>
</div>
字典用for进行循环
<!--字典也可以 for循环-->
<ul>
{% for item in user.keys %}
<li> {{item}} </li>
{% endfor %}
</ul>
<ul>
{% for k, v in user.items %}
<li> {{k}} = {{v}} </li>
{% endfor %}
</ul>
user_list = [
{"name":"zs", "age":23,"score":100},
{"name":"ls", "age":23,"score":100},
{"name":"ww", "age":23,"score":100},
]
return render(request, "tpl.html", {"user_list":user_list})
<!--列表里套字典 user_list.0.name, user_list.1.age-->
<ul>
{% for item in user_list %}
<li> {{item.name}} {{item.age}} {{item.score}} </li>
{% endfor %}
</ul>
<!--模板中条件语句-->
{% if n1 == "自定义标题" %}
<a>aaaa</a>
{% elif n1 == "新" %}
<a>bbbb</a>
{% else %}
<a>cccc</a>
{% endif %}
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。