Learn Django
来源:互联网 发布:翡翠网络推广方案 编辑:程序博客网 时间:2024/06/06 00:12
[+] 创建项目
django-admin.py stratproject Helloworld
[+] 开启服务
manage.py runserver 0.0.0.0:8000
[+] view.py
from django.http import HttpResponse def hello(request): return HttpResponse("Hello world ! ")
[+] urls.py
from django.conf.urls import url from . import view urlpatterns = [ url(r'^$', view.hello),]
正则表达式的规则可以改 如:r'^hello$'
则 访问ip:8000/hello时 调用view.hello
[+] 创建并使用模板
HelloWorld/|-- HelloWorld| |-- __init__.py| |-- __init__.pyc| |-- settings.py| |-- settings.pyc| |-- urls.py| |-- urls.pyc| |-- view.py| |-- view.pyc| |-- wsgi.py| `-- wsgi.pyc|-- manage.py`-- templates `-- hello.html
settings.py中TEMPLATES中的DIRS改为 [BASE_DIR+"/templates",],
更改 view.py 为
# -*- coding: utf-8 -*- #from django.http import HttpResponsefrom django.shortcuts import render def hello(request): context = {} context['hello'] = 'Hello World!' return render(request, 'hello.html', context)
[+] 标签的使用
例如:
{% if condition1 %} ... display 1{% elif condition2 %} ... display 2{% else %} ... display 3{% endif %}
菜鸟教程的便签用法链接
[+] 配置数据库
修改settings.py 的 DATABASE
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # 或者使用 mysql.connector.django 'NAME': 'test', 'USER': 'test', 'PASSWORD': 'test123', 'HOST':'localhost', 'PORT':'3306', }}
[+] 创建模型
创建App ~# django-admin.py startapp TestModel
HelloWorld|-- TestModel| |-- __init__.py| |-- admin.py| |-- models.py| |-- tests.py| `-- views.py
APP目录如图
更改 models.py 文件
from django.db import models class Test(models.Model): name = models.CharField(max_length=20)
setting 进行一下设置
INSTALLED_APPS = ( 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'TestModel', # 添加此项)
bash命令
$ python manage.py migrate # 创建表结构$ python manage.py makemigrations TestModel # 让 Django 知道我们在我们的模型有一些变更$ python manage.py migrate TestModel # 创建表结构
[+] 数据库调用
urls.py进行设置
from django.conf.urls import *from . import view,testdb urlpatterns = [ url(r'^hello$', view.hello), url(r'^testdb$', testdb.testdb),]
添加数据
# -*- coding: utf-8 -*- from django.http import HttpResponse from TestModel.models import Test # 数据库操作def testdb(request): test1 = Test(name='runoob') test1.save() return HttpResponse("<p>数据添加成功!</p>")
获取数据
# -*- coding: utf-8 -*- from django.http import HttpResponse from TestModel.models import Test # 数据库操作def testdb(request): # 初始化 response = "" response1 = "" # 通过objects这个模型管理器的all()获得所有数据行,相当于SQL中的SELECT * FROM list = Test.objects.all() # filter相当于SQL中的WHERE,可设置条件过滤结果 response2 = Test.objects.filter(id=1) # 获取单个对象 response3 = Test.objects.get(id=1) # 限制返回的数据 相当于 SQL 中的 OFFSET 0 LIMIT 2; Test.objects.order_by('name')[0:2] #数据排序 Test.objects.order_by("id") # 上面的方法可以连锁使用 Test.objects.filter(name="runoob").order_by("id") # 输出所有数据 for var in list: response1 += var.name + " " response = response1 return HttpResponse("<p>" + response + "</p>")
element = Test.Object.get(id=1)
element.delete()
element.name = "name"
element.save()
[+] GET请求
search.py
# -*- coding: utf-8 -*- from django.http import HttpResponsefrom django.shortcuts import render_to_response # 表单def search_form(request): return render_to_response('search_form.html') # 接收请求数据def search(request): request.encoding='utf-8' if 'q' in request.GET: message = '你搜索的内容为: ' + request.GET['q'] else: message = '你提交了空表单' return HttpResponse(message)
search_form.py
<!DOCTYPE html><html><head><meta charset="utf-8"><title>菜鸟教程(runoob.com)</title></head><body> <form action="/search" method="get"> <input type="text" name="q"> <input type="submit" value="搜索"> </form></body></html>
urls.py规则改为
from django.conf.urls import urlfrom . import view,testdb,search urlpatterns = [ url(r'^hello$', view.hello), url(r'^testdb$', testdb.testdb), url(r'^search-form$', search.search_form), url(r'^search$', search.search),]
[+] POST
post.html
<!DOCTYPE html><html><head><meta charset="utf-8"><title>菜鸟教程(runoob.com)</title></head><body> <form action="/search-post" method="post"> {% csrf_token %} <input type="text" name="q"> <input type="submit" value="Submit"> </form> <p>{{ rlt }}</p></body></html>
search2.py
# -*- coding: utf-8 -*- from django.shortcuts import renderfrom django.views.decorators import csrf # 接收POST请求数据def search_post(request): ctx ={} if request.POST: ctx['rlt'] = request.POST['q'] return render(request, "post.html", ctx)
urls.py
from django.conf.urls import urlfrom . import view,testdb,search,search2 urlpatterns = [ url(r'^hello$', view.hello), url(r'^testdb$', testdb.testdb), url(r'^search-form$', search.search_form), url(r'^search$', search.search), url(r'^search-post$', search2.search_post),]
阅读全文
0 0
- Learn Django
- Django Learn on windows01
- Learn Django 2
- django之新建一个应用learn
- learn
- learn
- django
- django
- django
- Django
- django
- Django
- Django
- Django
- Django
- Django
- Django
- django
- pthread
- ffmpeg-比特率,帧率和文件大小
- 2018秋招 今日头条1017 推箱子
- 【AGC013C】Ants on a Circle 弹性碰撞
- Echarts开发人物关系网络图
- Learn Django
- 内存 寄存器 缓存 栈堆
- oracle分析函数技术详解(配上开窗函数over())
- 领域驱动设计
- Java 获取当前页面完整的url
- AngularJs基础认识及应用
- 花米徐整理的卸载docker1.12并安装docker17.06的过程
- Notepad++中代码格式化插件NppAStyle
- "The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods i"解决方法