среда, 8 декабря 2021 г.

Install next js app react 2021



You need to install node js before create next js project

start your terminal/command prompt and run 

npx create-next-app@latest

after, you need enter project name
next-new-pro


cd
next-new-pro

npm run dev

open in your browser
localhost:3000





Install typescript react app




npm -v

npx create-react-app my-app --template typescript
 
cd my-app
 
yarn start

localhost:3000




понедельник, 20 сентября 2021 г.

Django ModelViewSets Example







 

 

github
https://github.com/manas-anarov/crud_viewset

 

settings.py

INSTALLED_APPS = [
    'post',
    'rest_framework',
]


crud_view/urls.py

from django.contrib import admin
from django.urls import path
from django.conf.urls import include, url

urlpatterns = [
    path('admin/', admin.site.urls),
    path('post/', include(('post.urls'))),
]


post/urls.py

from rest_framework.routers import DefaultRouter
from .views import PostViewSet

router = DefaultRouter()
router.register('post', PostViewSet)
urlpatterns = router.urls


post/models.py

from django.db import models
from django.contrib.auth.models import User


class Post(models.Model):
    title = models.CharField(max_length=250)
    text = models.TextField()
    def __str__(self):
        return self.title


post/views.py

from rest_framework import viewsets
from .models import Post
from .serializers import PostSerializer


class PostViewSet(viewsets.ModelViewSet):
    queryset = Post.objects.all()
    serializer_class = PostSerializer



post/serializers.py
from rest_framework import serializers
from rest_framework.serializers import (
    ModelSerializer,
)
from .models import (Post,)



class PostSerializer(ModelSerializer):
    class Meta:
        model = Post
        fields = [
            'title',
            'text',
        ]


post/admin.py
from django.contrib import admin
from .models import (Post,)

admin.site.register(Post)



понедельник, 28 декабря 2020 г.

1 of 50. eCommerce Django + React + Android, Install Django.

github
https://github.com/manas-anarov/kungfu_shop_two/tree/1_part


install virtual envoirment
pip3 install pipenv

create  folder
mkdir kungfu_shop_two;
cd
kungfu_shop_two;

install env for project
pipenv install

activate
pipenv shell

install django

pipenv install django~=3.1.4


start django project
django-admin startproject shop_django;

cd shop_django;



start server
python manage.py runserver;

 

open next link

http://127.0.0.1:8000/

суббота, 26 декабря 2020 г.

Django rest first application, Delete Post DestroyAPIView. Part 5

delete post





github
https://github.com/manas-anarov/django_3_ninja/tree/5_part



blog/views.py
from .serializers import (
    ListSerializer,
    AddSerializer,
    ShowSerializer,
    DeleteSerializer,
)

from rest_framework.generics import (
    ListAPIView,    
    CreateAPIView,
    RetrieveAPIView,
    DestroyAPIView,
)

from blog.models import Post

class DeletePost(DestroyAPIView):
    queryset = Post.objects.all()
    serializer_class = DeleteSerializer
    lookup_field = 'id'




blog/serializers.py
class DeleteSerializer(ModelSerializer):
    class Meta:
        model = Post




blog/urls.py
urlpatterns = [
    path('list/', views.PostListAPIView.as_view(), name='blog-list'),
    path('add/', views.AddPost.as_view(), name='blog-add'),
    path('<id>/', views.ShowPost.as_view(), name='blog-show'),
    path('delete/<id>/', views.DeletePost.as_view(), name='blog-delete'),
]




runserver
python manage.py runserver




open link
http://localhost:8000/api/v1/post/list

delete post
http://localhost:8000/api/v1/post/delete/1



How to display json data in listview . Android





platform.json
{
    "platform": [{
            "name": "Windows"
        },
        {
            "name": "Linux"
        },
        {
            "name": "MacOs"
        }
    ]
}



AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET" />


res/layout/activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.samuray.myapplication.MainActivity">

    <ListView
        android:id="@+id/lvMain"
        android:layout_width="368dp"
        android:layout_height="495dp"
        tools:layout_editor_absoluteX="8dp"
        tools:layout_editor_absoluteY="8dp" />
</android.support.constraint.ConstraintLayout>



res/layout/item.xml
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:background="#FFF"
    android:gravity="left">
    
    <TextView
        android:layout_height="25dp"
        android:layout_width="wrap_content"
        android:text="+15"
        android:textColor="#000"
        android:textSize="19sp"
        android:id="@+id/name_item"
        android:textStyle="bold"
        android:gravity="center"/>
</LinearLayout>



MainActivity.java
package com.example.samuray.myapplication;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import android.os.AsyncTask;

import android.util.Log;
import android.widget.ListView;
import android.widget.SimpleAdapter;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        new ParseTask().execute();
    }
    private class ParseTask extends AsyncTask<Void, Void, String> {

        HttpURLConnection urlConnection = null;
        BufferedReader reader = null;
        String resultJson = "";

        @Override
        protected String doInBackground(Void... params) {
            try {
                String $url_json = "http://www.anar8.ru/test/1/platform.json";
                URL url = new URL($url_json);

                urlConnection = (HttpURLConnection) url.openConnection();
                urlConnection.setRequestMethod("GET");
                urlConnection.connect();

                InputStream inputStream = urlConnection.getInputStream();
                StringBuffer buffer = new StringBuffer();

                reader = new BufferedReader(new InputStreamReader(inputStream));

                String line;
                while ((line = reader.readLine()) != null) {
                    buffer.append(line);
                }

                resultJson = buffer.toString();
                Log.d("FOR_LOG", resultJson);

            } catch (Exception e) {
                e.printStackTrace();
            }
            return resultJson;
        }


        protected void onPostExecute(String strJson) {
            super.onPostExecute(strJson);

            final ListView lView = (ListView) findViewById(R.id.lvMain);

            String[] from = {"name_item"};
            int[] to = {R.id.name_item};
            ArrayList<HashMap<String, String>> arrayList = new ArrayList<HashMap<String, String>>();
            HashMap<String, String> hashmap;

            try {
                JSONObject json = new JSONObject(strJson);
                JSONArray jArray = json.getJSONArray("platform");

                for (int i = 0; i < jArray.length(); i++) {
                    JSONObject friend = jArray.getJSONObject(i);

                    String nameOS = friend.getString("name");
                    Log.d("FOR_LOG", nameOS);

                    hashmap = new HashMap<String, String>();
                    hashmap.put("name_item", "" + nameOS);
                    arrayList.add(hashmap);
                }

                final SimpleAdapter adapter = new SimpleAdapter(MainActivity.this, arrayList, R.layout.item, from, to);
                lView.setAdapter(adapter);
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
    }
}