- Django 是一个由 Python 编写的一个开放源代码的 Web 应用框架。
使用 Django,只要很少的代码,Python 的程序开发人员就可以轻松地完成一个正式网站所需要的大部分内容。
- pip install Django==4.1.3
- 创建项目(也在Terminal输入): django-admin startproject HelloWorld
- 试运行命令
python3 manage.py runserver 0.0.0.0:8000
- 如果打开报错:Invalid HTTP_HOST header: ‘0.0.0.0:8000’. You may need to add ‘0.0.0.0’ to ALLOWED_HOSTS.:ALLOWED_HOSTS = [“*”]
新建自己的应用
- django-admin startapp app
(simpmlp) ┌──(fly100㉿kali)-[~/myproject/test/HelloWorld]
└─$ tree
.
├── app
│ ├── admin.py
│ ├── apps.py
│ ├── __init__.py
│ ├── migrations
│ │ └── __init__.py
│ ├── models.py
│ ├── tests.py
│ └── views.py
├── db.sqlite3
├── HelloWorld
│ ├── asgi.py
│ ├── __init__.py
│ ├── __pycache__
│ │ ├── __init__.cpython-38.pyc
│ │ ├── settings.cpython-38.pyc
│ │ ├── urls.cpython-38.pyc
│ │ └── wsgi.cpython-38.pyc
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
└── manage.py
添加路由
- /home/fly100/myproject/test/HelloWorld/HelloWorld/urls.py
urlpatterns = [
path('admin/', admin.site.urls),
]
from app import views
urlpatterns = [
path('admin/', admin.site.urls),
path('test', views.test),
]
- /home/fly100/myproject/test/HelloWorld/app/views.py
from django.shortcuts import render
# Create your views here.
from django.shortcuts import render
from django.shortcuts import HttpResponse
# Create your views here.
def test(request):
print(123)
return HttpResponse("ABC") # 返回数据 return HttpResponse('<a href="http://www.baidu.com">百度一下</a>')
- 测试
- python3 manage.py runserver 0.0.0.0:8000
- 0.0.0.0:8000/test
- 页面将显示 ABC
html文件模板
- 创建一个文件夹用于存放html (比如test.html): /home/fly100/myproject/test/HelloWorld/html
- 在/home/fly100/myproject/test/HelloWorld/HelloWorld/settings.py文件中添加设置
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': ["/home/fly100/myproject/test/HelloWorld/html"],# html位置
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
- 渲染html
def test(request):
return render(request,"test.html")
给url传参数
数据库操纵
#!/usr/bin/python https://www.runoob.com/sqlite/sqlite-python.html
import sqlite3
conn = sqlite3.connect('test.db')
print ("数据库打开成功")
c = conn.cursor()
c.execute('''CREATE TABLE COMPANY
(ID INT PRIMARY KEY NOT NULL,
NAME TEXT NOT NULL,
AGE INT NOT NULL,
ADDRESS CHAR(50),
SALARY REAL);''')
print ("数据表创建成功")
conn.commit()
conn.close()