Django --- Django下载和APP创建 ORM (大概步骤)

1,下载:
      命令行: pip install django == 1.11.15
      pip install -i或 源 django == 1.11.15
      pycharm
      settings 解释器 点 + 号 输入django 选择版本

 

2,创建 Django项目
      1,命令行: (可能有的东西没配置)
          cd 保存项目的目录
          django - admin startporject 项目名
      2,pycharm(可以自己都配置好)
          filr(按钮)--> new project --选择django ---->选择解释器--创建django项目

 


3,启动项目
        1,命令行:
          切换到 manage.py的目录下
          cd
          python manage.py runserver #127.0.0.1:8000
          python manage.py runserver 80 #127.0.0.1:8000
          python manage.py runserver #0.0.0.1:8000
        2.pycharm
          配置项
          点绿色三角启动

 


4,settings配置
    1,静态文件
        STATIC_URL= "/static/" #别名 ()
        STATICFILES_DIRS = [
        os.path.join(BASE_DIR,"static"),

        ] (可以创建多个)

    2,TEMPLATES 模版 放HTML文件的地方
      DIRS [os....] 自动生成的

    3,注释 csrf中间件
      MIDDLEWARE 第四行 csrf 注释掉这一行
    4,数据库的配置

5, URL 和函数的对应关系 ---> urls.py
  urlpatterns[
    url(r"^admin/",admin.site.urls),
    url(),
  ]

6.APP
    1.创建APP
      1,命令行:
        python manage.py startapp APP名
      2,pycharm
        tools ---> run manage.py task --> startapp APP名

    2.注册APP
      在settings.py中
      INSTALLED_APPS[
      加上自己的APP名(如若pycharm创建 会自动添加 若是手动添加则按规范来
      "APP名字.apps.App01Config")

      ]

7.使用mysql数据库
    1.创建一个数据库
    2.在srttings配置:
      DATABASES = {
          'default': {
            'ENGINE': 'django.db.backends.mysql', #引擎
            ‘NAME': 'db66', #数据库名字
            "USER": "root", #账户
            "PASSWORD": "666666", #密码
            "HOST": "127.0.0.1", #IP地址
            "PORT": 3306, #端口号
          }
      }
    3.告诉Django 使用pymysql 模块连接数据库
      在settings.py 同级目录下的 __init__.py中写(下载好了 pymysql):
        import pymysql
        pymysql.install_as_MYSQLad()

    4.建表 在APP文件夹里 models.py文件中写类(继承 models.Model)
        class Userinfo(models.Model):
          user = models.CharField(max_length=32)
          pwd = models.CharField(max_length=32)

    5.执行命令 (数据库迁移命令)
      Tools ---> Run~~
          python manage.py makemigrations #记录models.py中类是不是有变化 将变化的内容记录下来 记录到了 APP文件下 migrations       0001_initial.py里面
          python manage.py migrate

8 .ORM
      对象和关系型数据库的映射 通过操作对象的方式来操作数据库

      映射关系;
      类 ---> 数据表
      对象 ---> 数据行
      属性 ---> 字段

      ORM 能做的事:
      操作数据表 (建表,删表,改表)
      操作数据行

      ORM 的操作 :
        from login import models
        # 获取所有数据
        models.Userinfo.objects.all() ---> Queryset类型
        # 获取一条数据
        models.Userinfo.objects.get(user="??",pwd="??")
        get取不到数据或者取到多条数据的时候报错
        #创建一条数据
        models.Userinfo.objects.creat(user="??",pwd="??")

 

 

        

        1.查
        from login import models
        # 获取所有数据
        models.Userinfo.objects.all() ---> Queryset类型
        models.Userinfo.objects.all().order.by('id')排序 升序

        # 获取一条数据
        models.Userinfo.objects.get(user="??",pwd="??")
        get取不到数据或者取到多条数据的时候报错

        属性:
        pub_pbj.id
        pub_obj.name
        外键:
        book_obj.id
        book_obj.title
        book_obj.publisher ---->书籍关联的出版社对象
        book_obj.publisher_id ---->书籍关联的出版社对象的id
        偶对多:
        autho_obj.id
        autho_obj.name
        autho_obj.books ----->管理对象
        autho_obj.books.all()
        2.增
        #创建一条数据
        (新变量名)=models.Userinfo.objects.creat(name="新名字")

        外键:
        models.Book.objects.creeate(title = '新的书名',publisher_pub_obj)
        models.Book.objects.create(title='新的名字',publisher_id=pub_obj.id)
        多对多:

        autho_obj=models.Author.objects.create(name='作者名字')
        authon_obj = books.set([1,2,5])

        3.删
        #删除一个
        models.Publisher.objects.get(id=1,name="xxx").delete()
        -------------------------------------------------------

        models.Publisher.objects.all().delete()

        4,改
        #普通修改
        pub_obj.name = '新的名字'
        pub_obj.save()
        -----------------------------------------------------------
        book_obj.title = '新的书名'
        book_obj.publisher = pub_obj

        book_obj.save()

9.form表单

      1.method ="post" (form表单里面 必须带有这个) action="" ,这是请求方式 和提交数据的地址
      2.所有的 input标签要有name属性, name的名字要和 上面ORM 的user pwd 相同
      3.有一个input 的type="submit" 或者有一个button 按钮 就可以提交form表单

10. views.py 写函数
      request 跟请求相关的内容
      request.method 字符串 请求方式 GET/POST
      request.POST post请求提交的数据 字典
      request.GET get请求提交的数据

    返回值
      from django.shortcuts import HttpResponse,render,redirect

      HttpResponse("字符串") -->页面显示的就是字符串
      render(request,"模版文件的名字") -->渲染你的HTML文件返回给浏览器
      redirect("/要跳转的URL/") --->重定向 告诉浏览器再向浏览器发次GET请求

转载于:https://www.cnblogs.com/liuafan/p/9601302.html

1. 安装Elasticsearch和Python Elasticsearch客户端 - Elasticsearch安装可以参考官网的[安装文档](https://www.elastic.co/guide/en/elasticsearch/reference/current/install-elasticsearch.html) - Python Elasticsearch客户端可以使用pip安装:`pip install elasticsearch` 2. 在Django项目中创建一个app,用于处理与Elasticsearch相关的逻辑。 3. 配置Elasticsearch连接信息,可以在Django的`settings.py`中添加以下配置: ``` ELASTICSEARCH_DSL = { 'default': { 'hosts': 'localhost:9200' }, } ``` 其中,`hosts`就是Elasticsearch的地址,这里使用默认的`localhost:9200`。 4. 创建Elasticsearch索引模板,可以在app目录下创建一个`search_indexes.py`文件,定义索引模板: ``` from elasticsearch_dsl import Document, Text, Date, Keyword class ArticleIndex(Document): title = Text() content = Text() pub_date = Date() tags = Keyword(multi=True) class Index: name = 'articles' ``` 其中,`ArticleIndex`是一个继承自`Document`的类,定义了索引的字段和类型。`Index`类中的`name`属性指定了索引的名称。 5. 在app目录下创建`serializers.py`文件,定义序列化器,将模型序列化为Elasticsearch索引模板: ``` from rest_framework import serializers from .models import Article from .search_indexes import ArticleIndex class ArticleIndexSerializer(serializers.ModelSerializer): class Meta: model = Article fields = ('id', 'title', 'content', 'pub_date', 'tags') def save(self, **kwargs): article = super().save(**kwargs) article_index = ArticleIndex(meta={'id': article.id}, **article.__dict__) article_index.save() return article ``` 其中,`ArticleIndexSerializer`继承自`ModelSerializer`,定义了序列化的模型和字段。在`save`方法中,先保存模型,再将模型数据序列化为Elasticsearch索引模板,最后保存到Elasticsearch中。 6. 在app目录下创建`views.py`文件,定义视图函数,实现Elasticsearch搜索功能: ``` from rest_framework.views import APIView from rest_framework.response import Response from elasticsearch_dsl import Q from .search_indexes import ArticleIndex from .serializers import ArticleIndexSerializer class ArticleSearchView(APIView): def get(self, request): query = request.query_params.get('q', '') s = ArticleIndex.search().query( Q('multi_match', query=query, fields=['title', 'content', 'tags']) ) response = [] for hit in s.execute().hits: serializer = ArticleIndexSerializer(data=hit.to_dict()) serializer.is_valid() response.append(serializer.data) return Response(response) ``` 其中,`ArticleSearchView`继承自`APIView`,定义了一个`get`方法,接收`q`参数作为搜索关键词。通过Elasticsearch DSL构建查询语句,搜索索引模板中的数据,最后将搜索结果序列化返回。 7. 在app目录下创建`urls.py`文件,定义路由: ``` from django.urls import path from .views import ArticleSearchView urlpatterns = [ path('search/', ArticleSearchView.as_view(), name='article_search'), ] ``` 其中,`search`路由对应了`ArticleSearchView`视图函数。 8. 在Django的`settings.py`中添加app,配置数据库信息: ``` INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'rest_framework', 'app_name', # 添加app ] DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'db_name', 'USER': 'db_user', 'PASSWORD': 'db_password', 'HOST': 'localhost', 'PORT': '3306', } } ``` 9. 在app目录下创建`models.py`文件,定义模型,使用Django ORM作为数据源: ``` from django.db import models class Article(models.Model): title = models.CharField(max_length=255) content = models.TextField() pub_date = models.DateTimeField(auto_now_add=True) tags = models.CharField(max_length=255, blank=True) def __str__(self): return self.title ``` 其中,`Article`是一个继承自`models.Model`的类,定义了文章的属性。 10. 在app目录下创建`admin.py`文件,注册模型到Django Admin中: ``` from django.contrib import admin from .models import Article admin.site.register(Article) ``` 11. 在Django的`urls.py`中添加app的路由: ``` from django.contrib import admin from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), path('api/', include('app_name.urls')), ] ``` 12. 启动Django开发服务器,访问`http://localhost:8000/admin/`,进入Django Admin,创建一些文章数据。 13. 访问`http://localhost:8000/api/search/?q=django`,可以看到搜索结果,其中包含关键词`django`的文章数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值