当前位置: 首页 > Linux

Django入门(一)

时间:2023-04-06 01:35:12 Linux

django入门项目创建及APP创建准备环境python3virtualenvpip3pip3installdjango==1.1项目创建、APP创建django-adminstartprojectopscdopspython3manage.pystartappdarshboardcddarshboard#进入项目路径touchurls.py#创建路由文件项目结构如下如下:ops/|--darshboard||--管理员.py||--应用程序.py||--__init__.py||--迁移||--模型.py||--测试.py||--网址.py|`--views.py|--db.sqlite3|--manage.py`--ops|--__init__.py|--settings.py|--urls.py`--wsgi.py项目注册#vimops/ops/settings.pyINSTALLED_APPS=['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages'','django.contrib.staticfiles','darshboard.apps.DarshboardConfig'#Registerdarshboardprojecthere]routeregistration#vimops/ops/urls.pyfromdjango.conf.urlsimporturl,includefromdjango.contribimportadminurlpatterns=[url(r'^admin/',admin.site.urls),url(r'^darshboard/',include("darshboard.urls")),#registerappurls]至此,一个完整的流程就是helloworld修改darshboard的路由#vimops/darshboard/urls.pyfromdjango.conf.urlsimporturlfrom.viewsimportindexurlpatterns=[url(r'^hello/',index,name='index'),]写一个视图函数functionview的定义:a。是一个正常的功能B.接收HttpRequest的实例作为第一个参数c。然后返回HttpResponse的实例#vimops/darshboard/views.pyfromdjango.shortcutsimportrenderfromdjango.httpimportHttpResponsedefindex(request):returnHttpResponse('helloworld')Projectstart&testStartprojectpythonmanage.pyrunserver0:8080访问:打开本地浏览器输入:http://211.159.156.251:8080/darshboard/hello/即可访问!HttpRequest对象由Django创建属性如下:HttpRequest.schemeHttpRequest.bodyHttpRequest.pathHttpRequest.methodHttpRequest.encodingHttpRequest.GETHttpRequest.POSTHttpRequest.META方法如下:HttpRequest.get_host()HttpRequest.get_port()HttpRequest.get_full_path()HttpRequest.is_secure()HttpRequest.is_ajax()将一个字符串作为页面内容传递给HttpResponse构造函数fromdjango.httpimportHttpResponseresponse=HttpResponse("hereisthewebpage")response=HttpResponse("Textonly.please,content_type="text/plain")引用的视图如下fromdjango.shortcutsimportrenderfromdjango.httpimportHttpResponse,JsonResponseimportjsondefindex(request):data={'name':'wanghui','age':20}data_1=["devops","python"]#returnHttpResponse(json.dumps(data),content_type="application/json")#returnedcontent-typet#returnHttpResponse(json.dumps(data_1),content_type="application/json")返回JsonResponse(data_1,safe=False)#returnHttpResponse("HelloWorld!!",status=599)template为了让数据更漂亮POST和GET请求GET请求并传递参数-方法-GETPOST提交数据QueryDict对象方法练习#pythonmanage.pyshell>>>fromdjango.httpimportQueryDict>>>data=QueryDict('a=12&a=123&b=233')>>>data.urlencode()'a=12&a=123&b=233'数据库同步官方给出的数据库连接设置https://docs.djangoproject.com/en/1.11/ref/settings/#databases数据库同步相关命令pythonmanage.pyshowmigrationspythonmanage.pysqlmigratesessions0001pythonmanage.pydbshel??l#entershellmodecreationUserdjango-shellcreatesuser#方法一:(venv3)[wanghui@wwwops]$pythonmanage.pyshellPython3.6.1(default,Jun222018,18:25:52)[GCC4.8.520150623(RedHat4.8.5-28)]onlinuxType"help","copyright","credits"or"license"获取更多信息。(InteractiveConsole)>>>fromdjango.contrib.auth.modelsimportUser>>>User.objects.create_user('rock','12272@qq.com','123456')#创建普通用户>>>u=User.objects.get(username='rock')#查找用户>>>u.set_password('654321')#修改密码>>>u.save()#保存----------------------------------------------------------------------------------------------------#方法二:(venv3)[wanghui@wwwops]$pythonmanage.pycreatesupperuseruserlogin小练习着重于函数视图darshboard/views的练习.pyfromdjango.shortcutsimportrenderfromdjango.httpimportHttpResponse,JsonResponse,QueryDictfromdjango.templateimportloader,Context,Template来自django.contrib.auth.modelsimportUserfromdjango.contrib.authimportlogin,authenticateddefuser_login(request):#print(request.GET)#获取提交的用户名&密码ifrequest.method=="GET":#如果获取到请求,直接返回页面returnrender(request,'user_login.html')elifrequest.method=="POST":#Post需要获取用户名和密码username=request.POST.get("username")password=request.POST.get("password")#根据给用户取出这条记录是否存在.method=='DELETE':#通过删除方法获取请求体data=QueryDict(request.body)#获取删除的请求体print(data)returnHttpResponse("")darshboard/urls.py#指定routefromdjango.conf.urlsimporturl,includefromdjango.contribimportadminfrom.viewsimportindex,index_template,index_methods,user_loginurlpatterns=[url(r'^user_login',user_login)]darshboard/user_login.html

  • 用户名:
  • 密码:
delete方法的请求方法在linux本机执行:curl-XDELETEhttp://127.0.0.1:8080/darshboard/user_login/-d用户名=rock-d密码=654321